Rails denetleyicimde, aynı model sınıfının birden fazla örneğini oluşturuyorum. Bazı RSpec beklentilerini eklemek istiyorum, bu yüzden doğru parametrelerle doğru sayıyı oluşturduğunu test edebilirim. Yani, burada benim spec yanı da bu: o grup arkadaşı sınıf yalnızca 1 "should_receive" beklenti buna gerçekten karar gibi görünüyor, çünkü bu soruna neden oluyorsaBir nesneyi RSpec kullanarak nasıl çoklu istemciden beklentiler ekleyebilirim?
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)
. Ben örnek çalıştırdığınızda yani, ben şu hatayı alıyorum:
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"})
olanlar ikinci çağrı oluşturmak için doğru parametreler vardır, ama RSpec yanlış parametrelerle karşı testidir.
Birden çok farklı aramaya izin vermek için should_receive beklentilerimi nasıl kurabilirim bilen var mı?
Bu işe yaramalı. RSpec'in hangi sürümünü kullanıyorsunuz? Özellestirilmis yöntemleri siradan sekilde aramayı deneyin (Bandmate.create (...: user_id => @ user.id ...); Bandmate.create (...: kullanici_kimliği => "2222" ...); ...) ve işe yarayıp yaramadığını görün. –