作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我需要在 Rspec/capybara 请求规范中 stub current_user
方法的响应。该方法在 ApplicationController
中定义并使用 helper_method。该方法应该只返回一个用户 ID。在测试中,我希望此方法每次都返回相同的用户 ID。
或者,我可以通过在规范中设置 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
最佳答案
skalee 似乎在评论中提供了正确答案。
如果您尝试 stub 的方法是实例方法(很可能)而不是类方法,那么您需要使用:
ApplicationController.any_instance.stub(:current_user)
关于ruby-on-rails - 如何在请求规范中 stub ApplicationController 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448974/
我是一名优秀的程序员,十分优秀!