В моем контроллере 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 проверяет на неправильные параметры.
Кто-нибудь знает, как я могу настроить свои ожидания "следует-принимать", чтобы разрешить несколько разных вызовов?