व्यवहार प्रेरित विकास के अभ्यास के लिए अजगर के लिए कौन से उन्नत ढांचे और उपकरण उपलब्ध हैं? विशेष रूप से रूबी के लिए आरस्पेक और मोचा के समान उपकरण ढूंढना बहुत अच्छा होगा।
व्यवहार प्रेरित विकास के अभ्यास के लिए अजगर के लिए कौन से उन्नत ढांचे और उपकरण उपलब्ध हैं? विशेष रूप से रूबी के लिए आरस्पेक और मोचा के समान उपकरण ढूंढना बहुत अच्छा होगा।
जवाबों:
इयान Bicking उपयोग करने की सलाह doctest व्यवहार प्रेरित डिजाइन के लिए:
मैं व्यक्तिगत रूप से एक व्यवहार चालित डिजाइन शैली में नाक और voidspace नकली का उपयोग करते हैं। विशेष रूप से, बीडीडी के लिए नाक के लिए विशेष प्लगइन उत्कृष्ट है।
लेट्यूस का मतलब अजगर के लिए ककड़ी जैसा उपकरण होना है: http://lettuce.it/
आप स्रोत को github.com/gabrielfalcao/lettuce पर पकड़ सकते हैं
मैं वास्तव में व्यवहार करने की सलाह देता हूं ।
अजगर के लिए एक ककड़ी क्लोन की तलाश में, मैंने लेट्यूस का उपयोग करना शुरू कर दिया, लेकिन यह बहुत ही भद्दा रूप से डिजाइन की गई प्रतिकृति पाया। बहुत Unpythonic।
तब मुझे पता चला कि वह व्यवहार करता है, और वास्तव में इससे खुश है।
मैं आपको BDD और TDD के अभ्यास में प्रोग्रामर की मदद करने के लिए विकसित उपकरणों के एक सेट का उपयोग करने की सलाह देता हूं। यह उपकरण सेट द्वारा बनाया गया है: pycukes , specloud , ludibrio और should-dsl ।
चाहिए- DSL आपको RSpec जैसी उम्मीदें देगा। सब कुछ आप RSpec अपेक्षा एपीआई के साथ कर सकते हैं, चाहिए-डीएसएल भी करता है। आप गितुब से लेटेस्टवर्जन को हड़प सकते हैं ।
SpecLoud आपको BDD जैसी यूनिटीज को चलाने में मदद करता है। आप इसे करके स्थापित कर सकते हैं
pip install specloud
लुडीब्रियो टेस्ट डबल्स (मोक्स, स्टब्स और डमीज़) के लिए एक पुस्तकालय है। इसके माध्यम से स्थापित करें
pip install ludibrio
और PyCukes BDD का मुख्य उपकरण है। यह परिदृश्यों को फिर से चलाएगा, आदि।
pip install pycukes
अधिक जानकारी के लिए कृपया PyPi पर टूल डॉक्यूमेंटेशन पढ़ें ।
आप अभिव्यंजक अभिकथन के लिए "सुनिश्चित" का उपयोग कर सकते हैं (जैसे RSpec में)
Pyccuracy प्रोजेक्ट Python में BDD के लिए एक डोमेन-विशिष्ट भाषा प्रदान करने का एक प्रयास है।
Doctest के विपरीत, जो API स्तर पर काम करता है, यह उच्च-स्तरीय परिचालनों जैसे कि वेब पेज को लोड करने और फ़ॉर्म सबमिट करने के लिए एन्कोड करता है। मैंने इसका उपयोग नहीं किया है, लेकिन अगर यह वही है जो आप देख रहे हैं तो कुछ आशाजनक लगता है।
मुझे Pyccuracy बहुत पसंद हैं। मैं इन दिनों एक मध्यम आकार की परियोजना पर इसे लागू कर रहा हूं।
आजमाएँ pyspecs । विकास के दौरान लगातार पढ़ना और लगातार चलाना आसान बनाना इस परियोजना को बनाने में मेरे दो मुख्य लक्ष्य थे।
from pyspecs import given, when, then, and_, the, this
with given.two_operands:
a = 2
b = 3
with when.supplied_to_the_add_function:
total = a + b
with then.the_total_should_be_mathmatically_correct:
the(total).should.equal(5)
with and_.the_total_should_be_greater_than_either_operand:
the(total).should.be_greater_than(a)
the(total).should.be_greater_than(b)
with when.supplied_to_the_subtract_function:
difference = b - a
with then.the_difference_should_be_mathmatically_correct:
the(difference).should.equal(1)
# run_pyspecs.py
| • given two operands
| • when supplied to the add function
| • then the total should be mathmatically correct
| • and the total should be greater than either operand
| • when supplied to the subtract function
| • then the difference should be mathmatically correct
(ok) 6 passed (6 steps, 1 scenarios in 0.0002 seconds)
मैं शायद इस बिंदु को पूरी तरह से याद कर रहा हूं, लेकिन मैंने मूल बीडीडी पेपर को बनाए रखा जो कि बीडीडी सिर्फ टीडीडी था कुछ सर्वोत्तम प्रथाओं पर जोर देने के लिए रद्द कर दिया ।
अगर मेरी व्याख्या सही है, तो आप किसी भी xUnit कार्यान्वयन में तरीकों का नाम बदलकर सिर्फ BDD ढांचा प्राप्त कर सकते हैं । तो बस आगे बढ़ो और मानक पुस्तकालय का उपयोग unittest ।
संपादित करें: चीज़ शॉप में एक त्वरित Google ने व्यवहार मॉड्यूल को बदल दिया । इसके अलावा बीडीडी के लिए खोज करने पर और कुछ नहीं मिला।