В моем контроллере Rails я создаю несколько экземпляров одного и того же класса модели. Я хочу добавить некоторые ожидания RSpec, поэтому я могу проверить, что он создает правильный номер с правильными параметрами. Итак, вот что у меня в моей спецификации:
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)
Это вызывает проблемы, потому что кажется, что класс Bandmate может иметь только 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 тестирует неправильные параметры.
Кто-нибудь знает, как я могу настроить свои ожидаемые требования should_receive, чтобы разрешить несколько разных вызовов?