2013-07-03 2 views
0

Я пишу функцию UserLogin в огурце, и там я должен проверить, успешно ли зарегистрирован пользователь. Все идет хорошо, за исключением последней строки:undefined method should_receive 'for

Then I should be redirected to my home page 

Проблема в том, что это не обычный логин и ему нужен билет. Билет получен из ApplicationController # login_ticket. Я хочу незавершенное так я написал этот веб шаг:

Then(/^I should be redirected to my home page$/) do 
    ApplicationController.should_receive(:login_ticket).and_return("2081677") 
    current_path.should eq root_path 
end 

Но он терпит неудачу с сообщением:

Тогда я должен быть перенаправлен на мою домашней странице # функция/step_definitions/web_steps.rb: 13 не определен метод should_receive' for ApplicationController:Class (NoMethodError) ./features/step_definitions/web_steps.rb:14:in/^ я должен быть перенаправлен на моей домашней странице $/« функции/UserLogin.feature: 9: в` Тогда я должен быть перенаправлен на мою домашнюю страницу»

Что может быть проблемой здесь?

ответ

1

should_receive на самом деле не стучит, он устанавливает макет-ожидание. Попробуйте это ниже вместо этого:

ApplicationController.stub(:login_ticket) { "2081677" } 

Вам также необходимо проверить, что RSpec активен

require 'cucumber/rspec/doubles' 
более

: https://github.com/cucumber/cucumber/wiki/Mocking-and-Stubbing-with-Cucumber

Смежные вопросы