2011-04-12 17 views
18

निम्नलिखित कोड का उपयोग कर किसी वर्ग के लिए किसी भी इंस्टेंस ठूंठ एक त्रुटि को जन्म देती है?कैसे Rspec Mocks

उत्तर

3

2.6.0 के संस्करणों में आरएसपीसी मोक्स के साथ, आप इसे नहीं कर सकते हैं। हालांकि आप मोचा के साथ any_instance का उपयोग कर सकते हैं (जैसा कि here देखा गया है) या रुपेक के बाद के संस्करणों में।

config.mock_with :mocha

uncommented:

अपने spec/spec_helper.rb

में यकीन है कि आप इस लाइन किया हुआ है।

+4

ठीक है, दिया जाता है कि सवाल "Rspec Mocks का उपयोग कर", मुझे यकीन है कि इस सवाल का जवाब "Rspec Mocks का उपयोग नहीं करते" नहीं कर रहा हूँ उपयोगी है। फिर फिर, यह तकनीकी रूप से सही उत्तर से बेहतर है: आप इसे नहीं कर सकते हैं। –

+0

बहुत सच, अद्यतन उत्तर। –

+1

उपरोक्त परीक्षण वास्तव में रुपये से ही एक परीक्षण है [लिंक] (https://github.com/rspec/rspec-mocks/blob/master/spec/rspec/mocks/any_instance_spec.rb#L124)। और मॉड्यूल AnyInstance (mocks.rb) के माध्यम से शामिल हो जाता है: 'class.class_eval {आरएसपीसी :: मॉक्स :: AnyInstance}' मुझे लगता है कि इसे किसी भी तरह से करने का कोई तरीका है। – Andy

30

any_instance को हाल ही में rspec में जोड़ा गया था, इसलिए आपका उदाहरण अब मेरे लिए काम करता है क्योंकि यह rspec 2.7 के साथ है।

यहाँ अधिक any_instance प्रलेखन है: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs/stub-on-any-instance-of-a-class

+0

आधिकारिक दस्तावेज़: http://rubydoc.info/gems/rspec-mocks/RSpec/Mocks/AnyInstance –

+0

रुपेक मोक्स 3.0 दस्तावेज़: [https: //www.relishapp .com/rspec/rspec-mocks/docs/काम कर-साथ-विरासत-कोड/किसी भी-उदाहरण] (https://www.relishapp.com/rspec/rspec-mocks/docs/working-with-legacy-code/ किसी भी-उदाहरण) – user650654