2013-09-23 4 views
10

मैं अंतर/चर/जब खंड में अंतर में चर का उपयोग करना चाहता हूं। वेरिएबल्स को कैसे संरक्षित करें ताकि वे हर जगह पहुंच सकें?ककड़ी में चर बचाओ?

Given(#something) do 
    foo = 123 # I want to preserve foo 
end 

Then(#something) do 
    # how to access foo at this point??? 
end 

उत्तर

15

चरण परिभाषाओं में चर साझा करने के लिए, आपको आवृत्ति या वैश्विक चर का उपयोग करने की आवश्यकता है।

इंस्टेंस वैरिएबल का उपयोग तब किया जा सकता है जब आपको चरण परिभाषाओं में डेटा साझा करने की आवश्यकता होती है लेकिन केवल एक परीक्षण के लिए (यानी प्रत्येक परिदृश्य के बाद चर साफ़ हो जाते हैं)। इंस्टेंस वैरिएबल @ से शुरू होते हैं।

Given(#something) do 
    @foo = 123 
end 

Then(#something) do 
    p @foo 
    #=> 123 
end 

यदि आप सभी परिदृश्यों में एक चर साझा करना चाहते हैं, तो आप एक वैश्विक चर का उपयोग कर सकते हैं, जो $ के साथ शुरू होता है।

Given(#something) do 
    $foo = 123 
end 

Then(#something) do 
    p $foo 
    #=> 123 
end 

नोट: आमतौर पर यह अनुशंसा की जाती है कि चरण/परिदृश्यों के बीच चर को साझा न करें क्योंकि यह युग्मन बनाता है।

+0

मैं डिफ़ॉल्ट '@foo || =: bar' की सिफारिश करता हूं जहां यह संभव है ताकि चरण दूसरे चरण के बिना उपयोग किया जा सके। – Johannes

संबंधित मुद्दे