Мне нужно заглушить ответ метода current_user
в спецификации запроса Rspec / capybara. Метод определен в ApplicationController
и использует helper_method. Метод должен просто возвращать идентификатор пользователя. В рамках теста я бы хотел, чтобы этот метод каждый раз возвращал один и тот же идентификатор пользователя.
В качестве альтернативы я мог бы исправить свою проблему, установив в спецификации session [: user_id]
(это то, что возвращает current_user
) ... но это, похоже, не работает либо.
Возможно ли это?
Изменить:
Вот что у меня есть (он не работает. Он просто запускает обычный метод current_user).
require 'spec_helper'
describe "Login" do
before(:each) do
ApplicationController.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end
Также не работает:
require 'spec_helper'
describe "Login" do
before(:each) do
@mock_controller = mock("ApplicationController")
@mock_controller.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end