Я пытаюсь настроить тест контроллера, чтобы подтвердить, что одна из моих переменных экземпляра (@template
) получает заданный вызов функции (deliver
).присваивает (: var) .should_receive (: method) в контрольном тесте
С помощью следующего кода, однако, assigns
получает оценку до posts
, так assigns
является nil
:
it 'calls @template.deliver' do
assigns(:template).should_receive(:deliver).and_call_original
post :deliver, params
end
Как я могу настроить этот тест эффективно?
Технология стека:
Рубин 1.9.3p448
Rails 3.2.13
RSpec рельсы 2.13.1 (для принятого ответа ниже, я должен был обновить до 2.14)
я получаю «неопределенный метод' has_received?»Является ли' have_received' реализован в более позднем RSpec, чем то, что я писал в моей технической стопке выше ? – JellicleCat
@JellicleCat это 'has_received' не 'has_received', но да - я считаю, что это было введено в 2.14 - жаль, что вы не заметили свой стек. – Kyle
Я знаю, что это 'has_received'. Однако сообщение об ошибке относится к 'has_received? '. +1 в любом случае. – JellicleCat