मेरे पास आरएसपीसी 2.14.1 में एक कोड था जैसे:

Allow_any_instance_of(AnyClass).to get(:some_method).and_call_original

संबंधित संदेश अपेक्षा के साथ

Expect_any_instance_of (AnyClass)। प्राप्त करने के लिए (: some_method)।

उपरोक्त आरएसपीसी 2.14.1 में ठीक काम किया। rspec 3.1.0 में अपग्रेड करने के बाद, उपरोक्त कोड अब काम नहीं करता है। यह संदेश अपेक्षा पर विफल रहता है कि some_method को एक बार भी नहीं कहा जाता है

हालांकि अगर मैं allow_any_instance_of (AnyClass) जैसे स्टब को बदलता हूं। प्राप्त करने के लिए (: some_method)। और_return (मान)

यह आरएसपीसी 3.1.0 में ठीक काम करता है।

मैं सिर्फ यह समझना चाहता था कि rspec अपग्रेड के बाद allow_any_instance_of के साथ and_call_original का उपयोग क्यों विफल हो जाता है।

मैं इस लिंक से देख सकता हूं https:// relishapp.com/rspec/rspec-mocks/docs/configuring-responses/calling-the-original-implementation कि and_call_original केवल आंशिक डबल्स पर ही समर्थित है।

क्या इसका मतलब है allow_any_instance_of का उपयोग करना आंशिक डबल नहीं है?

0
clj 16 अक्टूबर 2018, 17:47

1 उत्तर

सबसे बढ़िया उत्तर

और_कॉल_ओरिजिनल वास्तव में तब काम करता है जब allow_any_instance_of के साथ प्रयोग किया जाता है।

Any_instance के लिए विशिष्टताओं का संदर्भ लें जो हमें यहां https://github.com/rspec/rspec-mocks/blob/master/spec/rspec/mocks/any_instance_spec.rb

ऊपर मेरे प्रश्न का उत्तर देने के लिए, जिस तरह से मैं संदेश अपेक्षा का उपयोग कर रहा था वह गलत है। यह होना चाहिए

अनुमति दें

मैं अपेक्षा के बजाय expect_any_instance_of का उपयोग करने का प्रयास कर रहा था जिससे समस्या उत्पन्न हुई।

0
clj 18 अक्टूबर 2018, 09:06