2013-05-01 5 views
9

में टेस्ट-संचालित विकास मैं केकेपीएचपी 2.3 का उपयोग कर रहा हूं और परीक्षण करना प्रेरित विकास (टीडीडी) का उपयोग कर केकपीएचपी वेबसाइट बनाने के बारे में जानना चाहता हूं। मैंने the official documentation on testing पढ़ा है, मार्क स्टोरी के Testing CakePHP Controllers the hard way को पढ़ा है, और मार्क स्टोरी के Win at life with Unit testing (PDF of slides) को देखा है लेकिन अभी भी उलझन में हूं। मुझे ध्यान रखना चाहिए कि मैं कभी भी किसी भी भाषा में परीक्षण लिखने के बारे में बहुत अच्छा नहीं रहा हूं और इसके साथ बहुत अनुभव नहीं है, और यह संभवतः मेरे भ्रम में योगदान दे रहा है।केकेपीएचपी

मैं टीडीडी का उपयोग कर केकपीएचपी वेबसाइट बनाने के तरीके के बारे में कोड उदाहरणों के साथ एक चरण-दर-चरण walkthrough देखना चाहता हूं। टीडीडी पर लेख हैं, केकेपीएचपी के साथ परीक्षण पर लेख हैं, लेकिन मुझे अभी तक एक गहन लेख नहीं मिला है जो दोनों के बारे में है। मुझे ऐसा कुछ चाहिए जो पूरी प्रक्रिया के माध्यम से मेरा हाथ रखे। मुझे एहसास है कि यह एक लंबा आदेश है क्योंकि, जब तक कि मेरा Google-fu मुझे विफल नहीं कर रहा है, मुझे पूरा यकीन है कि ऐसा लेख अभी तक प्रकाशित नहीं हुआ है, इसलिए मैं मूल रूप से आपको एक लेख लिखने के लिए कह रहा हूं (या एक लंबा स्टैक ओवरफ़्लो उत्तर), जिसमें समय लगता है। चूंकि यह एक लंबा आदेश है, इसलिए मैं इस सवाल पर बहुत सारे अंक के लिए एक बक्षीस शुरू करने की योजना बना रहा हूं जब मैं अपने प्रयासों के लिए किसी को बेहतर इनाम देने में सक्षम हूं, तो क्या कोई ऐसा करने को तैयार होना चाहिए। आपके समय के लिए धन्यवाद।

+0

आप वास्तव में क्या चाहते हैं मेरा मतलब है कि कितनी गहराई है। क्या आप समझने में मेरी सहायता के लिए एक उदाहरण परियोजनाएं दे सकते हैं कि गहराई से आपका क्या मतलब है? – ncm

+0

और यह भी समय की तुलना में अधिक समय की आवश्यकता है कि बोंटी खत्म हो जाएगा। – ncm

उत्तर

10

टीडीडी कुछ हद तक बाधा है कि यह अनिवार्य रूप से केवल यह लिखने के लिए कोड लिख रहा है कि आप परीक्षण लिख रहे हैं।

आपको बस इसे बनाने से पहले किसी चीज़ के लिए अपने परीक्षण बनाना है। इसके लिए विचार और परीक्षण लिखने के लिए आपके उपयोग मामलों के विश्लेषण की आवश्यकता है।

तो यदि आप किसी को डेटा देखने के लिए चाहते हैं, तो आप नियंत्रक के लिए एक परीक्षा लिखना चाहेंगे। यह शायद testViewSingleItem() जैसा कुछ होगा, शायद आप assertContains() कुछ डेटा चाहते हैं जो आप चाहते हैं।

एक बार यह लिखा गया है, तो यह विफल होना चाहिए, फिर आप परीक्षण पास करने के लिए अपनी नियंत्रक विधि लिखते हैं।

यही है। बस प्रत्येक उपयोग के मामले के लिए कुल्ला और दोहराना। यह यूनिट परीक्षण है।

अन्य परीक्षण जैसे कार्यात्मक परीक्षण और एकीकरण परीक्षण आपके आवेदन के विभिन्न पहलुओं का परीक्षण कर रहे हैं। यह आपके लिए पर विचार है और तय करें कि इनमें से कौन सा परीक्षण आपकी परियोजना के लिए उपयोगी है।

अधिकांश समय यूनिट परीक्षण करने का तरीका है क्योंकि आप एप्लिकेशन के अलग-अलग हिस्सों का परीक्षण कर सकते हैं। आमतौर पर ऐसे हिस्सों जो कार्यक्षमता पर सबसे अधिक प्रभाव डालते हैं, "गंभीर पथ"।

यह एक अविश्वसनीय रूप से उपयोगी टीडीडी ट्यूटोरियल है। http://net.tutsplus.com/sessions/test-driven-php/

+0

मैं आपके समय और सलाह की सराहना करता हूं! वह लिंक भी उपयोगी है। हालांकि, मुझे केकेपीएचपी के साथ टीडीडी की गहराई से चलने में दिलचस्पी होगी। – Nick

+0

टीडीडी और केकेपीएचपी के बीच कोई वास्तविक "चीज़" नहीं है। आप सिर्फ टीडीडी सिद्धांत सीखते हैं, PHP यूनिट सीखते हैं, और फिर बस कुछ परीक्षण लिखें। पुस्तक पर परीक्षण पर एक अच्छा अध्याय है। http://book.cakephp.org/2.0/en/development/testing.html –

+0

इसके अलावा केकपीएचपी के स्रोत कोड के अंदर भी देखें। ['Lib/cake/test'] के अंदर (https://github.com/cakephp/cakephp/tree/master/lib/Cake/Test/) निर्देशिका, आपको ढांचे के सभी यूनिट-परीक्षण मिलेंगे ।आप उन्हें अपने परीक्षणों के लिए उदाहरण के रूप में उपयोग कर सकते हैं और, उदाहरण के लिए, समझें कि नियंत्रक या मॉडल – thaJeztah