BDD, TDD चक्र के चारों ओर एक चक्र जोड़ता है।
तो आप एक व्यवहार के साथ शुरू करते हैं और उस परीक्षण को चलाने देते हैं, फिर परीक्षणों को चलाने दें। आदर्श रूप से, BDD किसी प्रकार के स्वीकृति परीक्षण से प्रेरित है, लेकिन यह 100% आवश्यक नहीं है। जब तक आपके पास अपेक्षित व्यवहार परिभाषित है, तब तक आप ठीक हैं।
तो, मान लीजिए कि आप एक लॉगिन पृष्ठ लिख रहे हैं।
खुश पथ से शुरू करें:
Given that I am on the login page
When I enter valid details
Then I should be logged into the site
And shown my default page
यह दिया-और-जब-तब-और-तब सिंटैक्स व्यवहार-संचालित विकास में आम है। इसके लाभों में से एक यह है कि इसे गैर-डेवलपर्स द्वारा पढ़ा जा सकता है (और, प्रशिक्षण के साथ, लिखित) - यानी, आपके हितधारक उन व्यवहारों की सूची देख सकते हैं जिन्हें आपने किसी कार्य के सफल समापन के लिए परिभाषित किया है और देखें कि क्या अधूरा उत्पाद जारी करने से पहले उनकी अपेक्षाओं से मेल खाता है।
एक स्क्रिप्टिंग भाषा है, जिसे घेरकिन के रूप में जाना जाता है, जो ऊपर की तरह बहुत कुछ दिखता है और आपको इन व्यवहारों में खंड के पीछे परीक्षण कोड लिखने की अनुमति देता है। आपको अपने सामान्य विकास ढांचे के लिए घेरकिन-आधारित अनुवादक की तलाश करनी चाहिए। वह इस उत्तर के दायरे से बाहर है।
वैसे भी, व्यवहार में वापस। आपका वर्तमान एप्लिकेशन अभी तक ऐसा नहीं करता है (यदि यह तब होता है तो कोई बदलाव का अनुरोध क्यों कर रहा है?), इसलिए आप इस परीक्षा में असफल हो रहे हैं, चाहे आप टेस्ट धावक का उपयोग कर रहे हों या बस मैन्युअल रूप से परीक्षण कर रहे हों।
तो अब उस कार्यक्षमता को प्रदान करने के लिए टीडीडी चक्र पर जाने का समय आ गया है।
आप बीडीडी लिख रहे हैं या नहीं, आपके परीक्षणों को एक सामान्य वाक्यविन्यास का नाम दिया जाना चाहिए। सबसे आम में से एक "वर्णित" सिंटैक्स है जिसे आपने वर्णित किया है।
एक परीक्षण लिखें: ShouldAcceptValidDetails। जब तक आप इससे खुश न हों, तब तक रेड-ग्रीन-रिफ्लेक्टर चक्र से गुजरें। क्या अब हम व्यवहार परीक्षण पास करते हैं? यदि नहीं, तो एक और परीक्षा लिखें: ShouldRedirectToUserDefaultPage। रेड-ग्रीन-रिफ्लेक्टर टिल आप खुश हैं। धोने, कुल्ला, दोहराएं जब तक आप व्यवहार में निर्धारित मानदंडों को पूरा नहीं करते हैं।
और फिर हम अगले व्यवहार के लिए आगे बढ़ते हैं।
Given that I am on the login page
When I enter an incorrect password
Then I should be returned to the login page
And shown the error "Incorrect Password"
अब आपको अपने पहले के व्यवहार को पारित करने के लिए इसे पूर्व निर्धारित नहीं करना चाहिए था। आपको इस बिंदु पर इस परीक्षण को विफल करना चाहिए। इसलिए वापस अपने टीडीडी चक्र पर जाएं।
और इसी तरह जब तक आपके पास अपना पेज न हो।
BDD और TDD के बारे में अधिक जानने के लिए Rspec बुक की अत्यधिक अनुशंसा करें , भले ही आप रूबी डेवलपर न हों।