मेरे रेल नियंत्रक में, मैं एक ही मॉडल वर्ग के कई उदाहरण बना रहा हूं। मैं कुछ आरएसपीसी उम्मीदों को जोड़ना चाहता हूं ताकि मैं परीक्षण कर सकूं कि यह सही पैरामीटर के साथ सही संख्या बना रहा है। तो, यहाँ क्या मैं अपने कल्पना में है:मैं आरएसपीईसी का उपयोग कर ऑब्जेक्ट पर एकाधिक कंधे की उम्मीदों को कैसे जोड़ सकता हूं?
Bandmate.should_receive(:create).with(:band_id => @band.id, :user_id => @user.id, :position_id => 1, :is_leader => true) Bandmate.should_receive(:create).with(:band_id => @band.id, :user_id => "2222", :position_id => 2) Bandmate.should_receive(:create).with(:band_id => @band.id, :user_id => "3333", :position_id => 3) Bandmate.should_receive(:create).with(:band_id => @band.id, :user_id => "4444", :position_id => 4)
यह समस्या उत्पन्न कर रहा है, क्योंकि ऐसा लगता है बैंड मित्र वर्ग केवल 1 "should_receive" उम्मीद उस पर सेट हो सकता है। तो, जब मैं उदाहरण के चलाने के लिए, मैं निम्नलिखित त्रुटि मिलती है:
Spec::Mocks::MockExpectationError in 'BandsController should create all the bandmates when created' Mock 'Class' expected :create with ({:band_id=>1014, :user_id=>999, :position_id=>1, :is_leader=>true}) but received it with ({:band_id=>1014, :user_id=>"2222", :position_id=>"2"})
उन दूसरी कॉल बनाने के लिए के लिए सही मानकों हैं, लेकिन RSpec गलत मापदंडों के खिलाफ परीक्षण है।
क्या कोई जानता है कि मैं अपनी अलग-अलग कॉलों को कई अलग-अलग कॉलों की अनुमति देने के लिए कैसे स्थापित कर सकता हूं?
यह काम करना चाहिए। आप आरएसपीईसी का किस संस्करण का उपयोग कर रहे हैं? Spec से बैंड में stubed विधियों को कॉल करने का प्रयास करें (Bandmate.create (...: user_id => @ user.id ...); Bandmate.create (...: user_id => "2222" ...); ...) और देखें कि यह काम करता है या नहीं। –