我对 Rails 很陌生。我一直在用 RSpec 开发我的应用程序。我刚刚关注了 Facebooker2 的 tutorial 并添加了 before_filter
以进行身份验证。
#app/controller/application_controller.rb
before_filter :ensure_authenticated
但是,我的规范(例如下面的规范)失败了,因为没有可以理解的有效 session 。
#spec/controllers/answers_controller_spec.rb
describe "GET index" do
it "assigns all answers as @answers" do
get :index, {}, valid_session
assigns(:answers).should include(answers(:reading))
end
end
但我似乎找不到一种方法来伪造一个有效的 session ,以便 rspec 在以下函数中使用。
#spec/controllers/answers_controller_spec.rb
def valid_session
{}
end
有办法吗?如果没有,对于这种情况,rails 的处理方式是什么?
最佳答案
如果您不关心测试实际的身份验证而只想模拟一个有效的 session ,您可以删除过滤器:
controller.stub(:ensure_authenticated).and_return(true)
编辑:您可能需要 ApplicationController.stub(...)
关于ruby-on-rails-3 - 我如何在 rails 3 中使用 Facebooker2 使用 valid_session 进行 rspec?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11081105/