Rails 用 devise helper 方法测试 controller 出现的问题

simlegate · 2012年12月07日 · 最后由 simlegate 回复于 2012年12月11日 · 1973 次阅读

我用 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 模拟成功了!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号