Я новичок в RSpec, так что несите меня. У меня есть объект с порядком, и я накладываю метод на этот объект. Я вызываю другой метод на этом объекте, который затем вызывает метод, который я забиваю (и этот заглушка, похоже, работает, потому что я помещал отладчики вокруг указанного вызова метода и возвращал его правильно. Плюс я отбросил отладчик в фактическом методе потому что это не было ударом, так что, похоже, все было в порядке).RSpec stubbing issue - заглушка, похоже, работает, но не принимается
Но когда я звоню @ order.should_receive, я получаю «ожидаемый: blah_method с (любыми аргументами) один раз, но получил его 0 раз».
Я не уверен, почему should_receive не работает, и я не уверен, что я делаю неправильно. Любая помощь? Кстати, я на RSpec 1.3.2.
it 'should be called when blah blah blah' do
@order.stub!(:blah_method).and_return true
#import_foobar_order calls @order.blah_method
#order_hash is irrelevant here, just a json obj converted to a hash
@order.import_foobar_order(@order, order_hash, website)
@order.should_receive(:blah_method).at_least(:once)
end
Вы ответили ему в то же время, что и я, но это смешно, как у нас есть тот же ответ – Timbinous
Бам, спасибо! Я думал, что мне нужно сначала заглушить метод, объявить, что он должен получить, а затем вызвать метод. Но ваш путь работает! – user1717344