पर ककड़ी चरण या चरण फ़ाइल सीमित करें मैंने अपने वेब ऐप के लिए एक मोडल स्लाइड शो लिखा है जो दस्तावेज़ों के सेट के लिए नेविगेशन प्रस्तुत करता है और उन दस्तावेज़ों के लिए विभिन्न मेटाडेटा का खुलासा करता है।निर्दिष्ट सुविधा या टैग
यह गूढ़ आवश्यकताओं के साथ आवेदन का एक बड़ा घटक है, इसलिए मुझे लगता है कि यह काफी उचित है कि इसके मूल परिदृश्य (मुझे स्वीकृति मानदंड के रूप में दिया गया) दोनों आंतरिक रूप से लगातार होना चाहिए।
हमारे कई में से प्रत्येक स्थिति के लिए एक नया कदम होने से बचने के लिए, मैं a helper जो मानव पठनीय शर्तों तब्दील अनुकूल नहीं बनाया है चयनकर्ताओं में इस तरह के रूप document caption
:
module SelectorsHelper
def selector_for(term)
case term
# Lightbox/modal/fancybox
when 'lightbox'
'#fancybox-inner'
when 'close button'
'.document-viewer__tools__close'
... जैसे कुछ सामान्य कदम परिभाषाओं के साथ निम्नलिखित:
# Generic click action
When(/^I click (?:on)?(?:the |a)'(.*?)'?$/) do |element|
find(selector_for(element)).click
end
समस्या है, चाहे मैं ऊपर या अधिक विशिष्ट पैटर्न है कि सुविधाओं का एक सेट के भीतर पुनरावृत्ति होना, को शामिल कपोल-कल्पना के साथ के रूप में बहुत सामान्य विचार पर अभिनय कर रहा हूँ कि इन डब्ल्यू कहर बरपाने सकता है अन्य गूढ़ विशेषताओं के साथ, जो उन्हें पार्स करने के लिए अधिक विशिष्ट कदम हो सकते हैं। मैंने देखा है कि प्रत्येक ककड़ी उदाहरण में चरण परिभाषा फाइलें हैं जिनके फ़ाइल नाम एक विशिष्ट फीचर फ़ाइल के लिए एक प्रक्रियात्मक संबंध रखता है, और मेरी धारणा यह थी कि इन मामलों में, उस चरण परिभाषा फ़ाइल को केवल इसकी संबंधित विशेषता में परिदृश्यों को पार्स करने के लिए बुलाया जाएगा:
+ features
| + step_definitions
| | + global_steps.rb
| | + modal_steps.rb
| | + login_steps.rb
| + modal.feature
| + login.feature
लेकिन ऐसा नहीं है - और मैं अपने आप को इस धारणा है कि ककड़ी हर परिदृश्य को हर कदम परिभाषा पैटर्न लागू करने के लिए प्रयास करता है करने के लिए इस्तीफा देने के लिए संघर्ष कर रहा हूँ। यदि इन परीक्षणों में कोई योग्यता होगी, तो वे अधिक असंख्य हो जाएंगे, नई अवधारणाओं को पेश करेंगे, और लगातार पुनः लिखने के बिना प्रासंगिक रहेंगे। मैं उन चरणों के साथ हस्तक्षेप रोकने के लिए अपने कदमों के दायरे को सीमित करने में सक्षम होना चाहता हूं, जिन्हें वे नहीं लिखे गए थे, लेकिन यह नहीं जानते कि कैसे। निम्नलिखित वैचारिक समाधान दिमाग में आते हैं: लपेटकर किसी तरह का में
- पृष्ठभूमि का उपयोग करें या परिदृश्य
@tags
और - घोंसला कदम परिभाषाओं उन टैग के साथ ही परिदृश्यों के लिए चरणों का आह्वान सहायक या परा कदम परिभाषा है कि एक द्वारा लाया है
मैं रूबी और ककड़ी से अपरिचित हूं, बहुत पतली लगती है, इसलिए मैं एक तरफ असीमित क्षमता से परेशान हूं और दूसरे पर पूर्व निर्धारित कार्यान्वयन नहीं कर रहा हूं। कोई विचार?
ऐसा करने का प्रयास कर रहे हैं, मुझे लगता है कि मेरा प्रश्न अविश्वसनीय रूप से सामान्य परिस्थिति के लिए अत्यधिक विशिष्ट समाधान की तलाश में था। यह एक अच्छा सवाल है जिसे मैं उम्मीद कर सकता था। आपकी सलाह - क्या नहीं ककड़ी का उपयोग किया जाना चाहिए_ - बहुत समझ में आता है। अगर मैं कभी ककड़ी का उपयोग करने के लिए लौट आया तो मैं उस सलाह का पालन करूंगा! – Barney