Мне нужно заглушить ответ метода current_user
в спецификации запроса Rspec/capybara. Метод определен в ApplicationController
и использует helper_method. Метод должен просто вернуть идентификатор пользователя. В рамках теста я хотел бы, чтобы этот метод возвращал один и тот же идентификатор пользователя каждый раз.
В качестве альтернативы я мог бы исправить свою проблему, установив session[:user_id]
в spec (что возвращает current_user
)... но это тоже не работает.
Возможны ли какие-либо из этих вариантов?
Edit:
Вот что я получил (он не работает, он просто запускает обычный метод 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