2010-10-24 5 views
9

मेरे पास कई परिदृश्यों के साथ एक परिदृश्य रूपरेखा है। मैं अपने पहले हुक को केवल एक बार चलाने के लिए चाहता हूं, इसलिए मैं ActiveRecord ऑब्जेक्ट्स को बूटस्ट्रैप कर सकता हूं, मुझे सभी परिदृश्यों के विरुद्ध चलाने की आवश्यकता है। समस्या यह है कि अगर मैंककड़ी: सभी परिदृश्यों के लिए केवल एक बार हुक चलाने से पहले

Before do 
    # my code here 
end 

यह प्रत्येक परिदृश्य से पहले निष्पादित करेगा। क्या पूरी आउटलाइन के लिए इसे चलाने के लिए वैसे भी है?

उत्तर

3

मुझे लगता है कि अगर आप बस सुविधाओं में एक फ़ाइल में वस्तुओं को बनाने/समर्थन वे कायम किया जाएगा:

ImportantThing.create(:name => "USEFUL THING") 

इसका कारण यह है पहले हर परिदृश्य ककड़ी एक डेटाबेस लेनदेन शुरू हुई और फिर करने के लिए रोलबैक जाएगा इसकी पूर्व स्थिति, जिसमें आपके द्वारा लोड की गई वस्तुओं को शामिल करना चाहिए।

0

मुझे एक ही समस्या थी, जहां मुझे अपने सभी ईवेंट लॉगिंग परीक्षणों के लिए एक बार ग्राहक प्रबंधक बनाने की आवश्यकता थी। अगर मैंने पहले हुक या नियमित कदम (उदा। एक दिया गया) का उपयोग किया है, तो प्रबंधक प्रत्येक परिदृश्य से पहले बनाया जाएगा।

मेरा समाधान आखिरकार मेरे पहले परिदृश्य पर हुक से पहले टैग किए गए टैग का उपयोग करने के लिए था।

Before('@first_logging_scenario') do 
    # do something useful 
end 

बंद करने के लिए मेरे प्रबंधक, मैं अपने पिछले परिदृश्य के साथ हुक करने के बाद एक टैग किए गए प्रयोग किया जाता

After('@last_logging_scenario') do 
    # do something useful 
end 
संबंधित मुद्दे