ककड़ी और आरएसपीसी दोनों बीडीडी के लिए उपयोग किए जाते हैं लेकिन अलग-अलग उपयोग होते हैं।
वेब ब्राउज़र के साथ बातचीत के माध्यम से, उपयोगकर्ता के परिप्रेक्ष्य से क्या होता है, यह वर्णन करते हुए ककड़ी के बारे में सोचें। तो अगर आप की तरह चरणों हो सकता है:
Given I'm not logged in
When I login
Then I should be on the user dashboard page
सुंदर व्यापक है, लेकिन वहाँ एक बहुत वहाँ हुड के नीचे चल रहा है। ककड़ी यह सुनिश्चित करने के लिए अच्छा है कि इन सभी प्रकार की उच्च स्तरीय विशेषताओं और कार्यक्षमता को कवर किया गया है (उदाहरण के लिए, जब आपका उपयोगकर्ता लॉग इन करता है, तो उन्हें सही पृष्ठ पर ले जाया जाता है)। लेकिन यह निम्न-स्तर कोड का परीक्षण करने के लिए एक अच्छा उपकरण नहीं है। यही वह जगह है जहां आरएसपीसी आता है।
उपरोक्त लॉगिन उदाहरण लें। आपका उपयोगकर्ता किसी ईमेल पते या उपयोगकर्ता नाम से लॉग इन कर रहा है। आप शायद यह सुनिश्चित करना चाहते हैं कि ईमेल पता मान्य है या उपयोगकर्ता नाम एक निश्चित लंबाई है ... या वह चीज़ जो वे लॉगिन करने के लिए उपयोग कर रहे हैं वह अद्वितीय है। आप इसे अपने उपयोगकर्ता मॉडल में सत्यापन के साथ करेंगे।
यह एक मामूली उदाहरण है, लेकिन यह ऐसी चीज है जिसे आप आरएसपीईसी (अपने spec/models/user_spec.rb फ़ाइल में) का उपयोग करके परीक्षण करेंगे। यह कुछ है जिसे आप ककड़ी का उपयोग करके परीक्षण करेंगे।
तो लब्बोलुआब यह है:
कैसे अपनी कक्षाओं, विधियों, मॉडल, नियंत्रक के लिए वर्णन करने वाली निचले स्तर के परीक्षण के लिए उपयोगकर्ता के नजरिए
RSpec से देखा के रूप में व्यापक कार्यक्षमता का वर्णन उच्च स्तर के परीक्षण के लिए ककड़ी , आदि वास्तव में काम करना चाहिए।
इस पोस्ट में वास्तव में समझा जब एक उपकरण से दूसरे में संक्रमण के लिए की एक बहुत अच्छा काम करता है:
http://www.sarahmei.com/blog/2010/05/29/outside-in-bdd/
मैं यह भी अनुशंसा "The RSpec Book" और दोनों उपकरण और परीक्षण पर अच्छा संसाधनों के लिए "Rails Test Prescriptions" सामान्य रूप में।
पीएस - चीजों को भ्रमित नहीं करना, लेकिन आप वास्तव में उच्च स्तरीय सामान के लिए आरएसपीसी का भी उपयोग कर सकते हैं। लेकिन उस निर्णय में से कुछ यह है कि आप किस उपकरण को पसंद करते हैं या शायद आप एक गैर तकनीकी क्लाइंट के साथ काम कर रहे हैं या नहीं, जो परिदृश्यों का वर्णन करने के लिए ककड़ी के उपयोगकर्ता के अनुकूल वाक्यविन्यास से अधिक लाभान्वित होगा।
http://stackoverflow.com/questions/393622/rspec-vs-cucumber-rspec-stories –