2014-04-29 3 views
15

मैं अब तक इस प्रश्न के साथ कुश्ती कर रहा हूं। मुझे पता है कि मुझे सिर्फ एक या दूसरे में कूदने की जरूरत है क्योंकि वे दोनों स्पष्ट रूप से व्यवहार्य/उपयोगी उपकरण हैं, लेकिन हफ्तों के लिए, दोनों की खोज, बाड़ पर फंस गए हैं।टेस्टिंग लैरवेल 4 ऐप्स (पीएचपीएसपीसी/बीडीडी बनाम PHPUnit/TDD) पर पहला शॉट

PHPUnit बनाम PHPSpec - कौन सा बेहतर लंबी अवधि के रख-रखाव और प्रोग्रामिंग प्रथाओं को जन्म दे सकती?

मैंने कई अनुभवी PHPUnit -> PHPspec रूपांतरण/उपयोगकर्ताओं से बात की है जो अब PHPspec द्वारा कसम खाता है, दावा करते हुए कि यह अपने बीडीडी दृष्टिकोण के लिए बेहतर डिजाइन धन्यवाद को बढ़ावा देता है। हालांकि, चूंकि यह एक बहुत ही नया टूल है, इसलिए PHPUnit की तुलना में समुदाय/ट्यूटोरियल की कमी है।

वर्तमान में, मेरा PHP विकास लैरवेल 4 विकास के आसपास केंद्रित है।

जहां PHPUnit मूल रूप से लैरवेल ढांचे में बेक किया गया है, ऐसा लगता है कि यह आसान विकल्प हो सकता है, लेकिन मुझे वास्तव में पीएचपीएसपीसी के बीडीडी पहलू पसंद हैं। हालांकि, ऐसा लगता है कि पीएचपीएसपीसी लार्वाले के मुखौटे के सेटअप के साथ अच्छी तरह से खेलना नहीं चाहता है (जो मुझे भी मिल रहा है, जब भी संभव हो, स्पष्ट करने के लिए एक अच्छा अभ्यास हो सकता है)।

मेरा वास्तविक conundrum इनमें से कौन सा मौजूदा मौजूदा मौजूदा कवरेज के साथ मौजूदा लैरवेल 4 प्रोजेक्ट में सफलतापूर्वक एकीकृत होने की संभावना अधिक होगी।

मेरे पास एक मौजूदा प्रोजेक्ट में PHPUnit और PHPSpec दोनों को एकीकृत करने के लिए प्रारंभिक/संक्षिप्त स्टैब था, लेकिन वास्तव में यह सुनिश्चित नहीं था कि प्रारंभिक परीक्षण लिखने के साथ कहां से शुरू किया जाए और समय के लिए उन्हें समाप्त कर दिया जाए।

मैं वास्तव में यह निर्धारित करने की कोशिश कर रहा हूं कि कौन सा समय लंबे समय तक कुछ समय निवेश कर सकता है।

किसी भी व्यक्ति द्वारा अनुभव किए गए किसी भी संसाधन/अंतर्दृष्टि की सराहना की जाएगी।

+0

मैं एक ही चीज़ के साथ कुश्ती कर रहा हूं, क्या आप लाराकास्ट्स के सदस्य हैं? जेफरी वे के पास PHPUnit और PHPSpec दोनों पर कुछ वीडियो हैं। क्योंकि मैं परीक्षण करने के लिए नया हूं, मैंने PHPUnit से शुरू करने का निर्णय लिया है क्योंकि बहुत अधिक दस्तावेज हैं और यह शुरू करना आसान लगता है। –

+0

हा @MitchGlenn यह मेरी सटीक स्थिति है। मैं पिछले दिसंबर से लाराकास्ट्स के साथ रहा हूं और जेफरी वे से एक टन सीखा है (ऐसा लगता है कि वह हाल ही में पीएचपीएसपीसी को पसंद कर रहा है)। मेरे डेवलपर की जिज्ञासा मुझे पीएचपीएसपीसी में गोता लगाने की इच्छा रखती है, लेकिन ऐसा लगता है कि बुद्धिमान अधिक समय/लागत प्रभावी विकल्प उस सटीक कारण के लिए PHPUnit होगा। इनपुट के लिए धन्यवाद। – ErikTheDeveloper

+0

मैं 6 दिन पहले शामिल हुआ और 65 वीडियो में हूं, मुझे लगता है कि मेरा दिमाग जल्द ही इतनी महान सामग्री से विस्फोट करने जा रहा है। मैं पीएचपीएसपीसी के साथ जाना चाहता हूं कि जेफरी कितनी महान ध्वनि बनाता है, लेकिन जैसा कि आप कहते हैं, अधिक समय प्रभावी होने के लिए, मैं काम पूरा करने के लिए आसान मार्ग से शुरू कर रहा हूं। –

उत्तर

33

PhpSpec

PhpSpec एक डिजाइन उपकरण है। यदि आप टीडीडी (टेस्ट-फर्स्ट दृष्टिकोण) में उपयोग नहीं करते हैं तो यह आपके जीवन को शुरुआत में कठिन बना देगा।

हालांकि आप प्रक्रिया के दौरान बहुत कुछ सीखेंगे। आप भी बहुत कसम खाता हूँ। कई चीजें, जिन्हें खराब अभ्यास माना जाता है, PhpSpec (उदाहरण के लिए आंशिक मोक्स की तरह) के साथ संभव नहीं हैं। आपको इसे समझना होगा और इसे गले लगा देना होगा। टेरावेल के मुखौटे का परीक्षण कठिन है, 'क्योंकि ओओपी नहीं है।

PhpSpec के साथ मौजूदा कोड का परीक्षण करना बहुत कठिन है, क्योंकि आपको इसे पहले टेस्ट करने योग्य बनाना है (जो परीक्षण-प्रथम दृष्टिकोण के साथ आसान है)।

PHPUnit

दूसरी ओर, PHPUnit एक परीक्षण उपकरण है। आप इसे टीडीडी, बीडीडी या जो कुछ भी कहते हैं उसका उपयोग कर सकते हैं। लेकिन आपको नहीं करना है।

च्वाइस

अपने उद्देश्य कैसे बेहतर डिजाइन करने के लिए और आप परीक्षण पहले दृष्टिकोण के लिए प्रतिबद्ध रहे हैं जानने के लिए है, तो PhpSpec आप में मदद मिलेगी। यदि आपका उद्देश्य परीक्षण या सत्यापन करना है, तो PhpUnit आपका मित्र है।

TDD बनाम BDD

यह या तो TDD या BDD नहीं है। कम से कम एक कोड स्तर परिप्रेक्ष्य से, वे वही हैं। बीडीडी एक टीडीडी-परिभाषित के रूप में शुरू हुआ, एक बेहतर शब्दावली की पेशकश। अब यह कोड स्तर से परे चला गया है और यह उससे भी ज्यादा है। इन दिनों मैं गोज्को एडज़िक द्वारा प्रस्तावित एक शब्द का उपयोग करना पसंद करता हूं - उदाहरण द्वारा विशिष्टता।

+0

बिल्कुल सही। यह मुझे बहुत कुछ है जो मुझे पढ़ने और प्रयोग करने से मिला है ... मेरे मामले में, मुझे शायद PHPUnit से शुरुआत करने की आवश्यकता है, क्योंकि मुझे वास्तव में कुछ मौजूदा परियोजनाओं में कुछ परीक्षण लागू करने की आवश्यकता है। और फिर! ... पीएचपीएसपीसी क्षेत्र में छलांग लगाओ। मैं पिछले कुछ हफ्तों के लिए रेल/आरएसपीसी (* गैसपी!) का उपयोग कर रहा हूं और इसका आनंद ले रहा हूं। फिलहाल दो दुनिया के बीच विभाजन की तरह .... अंतर्दृष्टि के लिए धन्यवाद। – ErikTheDeveloper

+0

क्या मैं इसे सही ढंग से समझ रहा हूं: जब भी आपके कार्यों में से कोई एक लार्वा मुखौटा का उपयोग करता है, तो यह अब phpspec के साथ परीक्षण योग्य है? मुझे लगता है कि यह मेरे पास होने वाले किसी अन्य मुद्दे से संबंधित हो सकता है (http://stackoverflow.com/questions/27973926/how-do-i-call-validator-from-a-namespace-with-an-already-existing-validator -clas) –

संबंधित मुद्दे