2013-10-07 5 views
11

मैंने अपनी परियोजना को रेल 4 में अपग्रेड कर दिया है, लेकिन अब मुझे कुछ बहिष्करण चेतावनियां मिल रही हैं और उनमें से एक अस्वीकरण है: any_number_of_times को बहिष्कृत किया गया है।। कोड है जिसके लिए मैं gettings हूँ इस चेतावनीस्टब्स में किसी भी_number_of_times विधि के वैकल्पिक

sponsorship = RSpec::Mocks::Mock.new(:sponsorship) 

SPONSORSHIP.should_receive(:[]).with('sponsorship').any_number_of_times.and_return(sponsorship) 

है और एक अन्य परिदृश्य

sponsorship.should_receive(:[]).with(key).any_number_of_times.and_return(value) 

मैं ऊपर कोड के लिए ठूंठ का इस्तेमाल किया है है, लेकिन इसे सही ढंग से छोटा करते नहीं है। क्या आप पाते हैं कि मैं इसे गलत कहां कर रहा हूं। छोटा करते के लिए मैं

SPONSORSHIP.stub(:[]).with('sponsorship').and_return(sponsorship) 
+0

बस एक कूबड़, हटाने 'any_number_of_times' यह भावना है कि should_receive कम से कम एक बार के लिए डिफ़ॉल्ट होगा बनाता है। – Yule

+0

को हटाने any_number_of_times त्रुटियों देता उम्मीद n * बार एक बार मिला –

उत्तर

14

का इस्तेमाल किया है विधि any_number_of_times अब मान्य नहीं है (और RSpec 3 में बंद होने वाला है) क्योंकि यह वास्तव में कुछ भी परीक्षण नहीं कर रहा है। यह कभी असफल नहीं होगा, क्योंकि इसे 0 बार भी कहा जा सकता है। https://trello.com/c/p2OsobvA/78-update-website-menu-architecture-to-accommodate-pledging-as-well-as-weddings-memorials-etc में विस्तारित तर्क देखें।

आप यह उम्मीद तो कम से कम एक बार कहा जा करने के लिए आपको at_least(1).times उपयोग कर सकते हैं।

4

के बाद से any_number_of_times मदद की तरह at_least(n) और at_most(n) किसी भी मदद के अन्य वैकल्पिक तरीकों उन प्रतिवाद चेतावनी को हटाने की नहीं है।

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