我用 sign_in 模拟了登录,但是测试的时候 action 中的 current_user 为空,然后测试就失败,这是怎么回事?
@user = stub_model User,_id: "5",email: "[email protected]" sign_in @user
Devise 的 sign_in 只有在 non-acceptance test 的时候才能用,因为 sign_in 需要用到 request object。在 acceptance test(例如 capybara)的时候 request object 不存在所以无法使用。你可以直接用 Warden 的 login_as
#1 楼 @rbao 谢谢!结果还是使用了 FactoryGirl 模拟成功了!