2013-07-10 5 views
67

कोड का निम्न भाग प्राप्त करने की उम्मीद के रूप में काम करता है है:Object.any_instance should_receive बनाम उम्मीद()

expected: 1 time with any arguments 
received: 0 times with any arguments 

मैं इस काम को उम्मीद() प्राप्त करने के साथ कैसे कर सकता हूं?

उत्तर

141

अब expect_any_instance_of नामक एक बहुत अच्छी तरह से प्रलेखित विधि नहीं है जो any_instance विशेष केस को संभालती है। आपको उपयोग करना चाहिए:

expect_any_instance_of(Object).to receive(:subscribe) 

Google expect_any_instance_of अधिक जानकारी के लिए।

+0

+1 "बहुत अच्छी तरह से प्रलेखित नहीं" के लिए +1। अभी भी मामला http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ExampleMethods:expect_any_instance_of – johngraham

+0

मैं 'allow_any_instance_of' का उपयोग कर रहा हूं। क्या यह इस विधि का उपनाम है? – rubyprince

+0

@ रूबप्रिंस वे अलग-अलग हैं, व्यवहार विधियों को रोकने की अनुमति के साथ और व्यवहार के तरीकों की जांच की अपेक्षा करते हैं। उदाहरण के लिए, '(my_obj) प्राप्त करने के लिए अनुमति दें (: method_name) .and_return (true) 'stubs' my_obj.method_name()' इसलिए यदि इसे परीक्षण में कहा जाता है तो यह केवल 'सत्य' देता है। 'उम्मीद (my_obj) प्राप्त करने के लिए (: method_name) .and_return (true) 'किसी भी व्यवहार को नहीं बदलेगा, लेकिन अगर मेरी my_obj.method_name()' को बाद में नहीं कहा जाता है तो विफल होने की एक परीक्षण अपेक्षा सेट अप करता है परीक्षण या सच नहीं है। – Saigo

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