2013-10-07 6 views
11
class Foo 
    def bar(a, b) 
    ... 

Foo.should_receive(:bar) 

बार को किसी भी तर्क के साथ बुलाया जाने की उम्मीद है।आरएसपीसी के साथ कुछ (लेकिन सभी नहीं) तर्कों की अपेक्षा कैसे की जानी चाहिए?

Foo.should_receive(:bar).with(:baz, :qux) 

अपेक्षा करता है: बाज़ और: qux को पैरा के रूप में पारित किया जाना चाहिए।

पहले पैरा को बराबर करने की अपेक्षा कैसे करें: बाज़, और अन्य पैरा के बारे में परवाह नहीं है? जब आपके विधि एक तर्क के रूप में एक हैश प्राप्त कर रहा है

Foo.should_receive(:bar).with(:baz, anything) 

उत्तर

23

anything मिलान का उपयोग करें

Connectors::Scim::Preprocessors::Builder. 
    should_receive(:build). 
    with(
     hash_including(:connector => connector) 
    ). 
    and_return(preprocessor) 
} 
+2

यह काम करता है। चेतावनी है कि आपको प्रत्येक परम के लिए एक 'कुछ भी' चाहिए। –

+2

मुझे यकीन नहीं है कि इसे बाद में जोड़ा गया था, लेकिन आरएसपीईसी के पास कोई_र्ग है ताकि 'बार (ए, बी, सी)' के लिए आप 'Foo.should_receive (: bar)। (: Baz, any_args)' – rubyprince

+0

धन्यवाद कर सकते हैं @ रूबप्रिंस बहुत, महान टिप! –

0

लिए Rspec 1.3anything काम नहीं करता है, तो hash_including(:key => val) साथ प्रयास करें:

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

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