繁体   English   中英

与Devise和Capybara的路由约束warden会话

[英]Routing constraint warden session with Devise and Capybara

我正在使用Capybara进行一些功能测试并添加了路由约束。

这是代码的片段:

class LenderConstraint
    def matches?(request)
        user_cookie = request.session.fetch('warden.user.user.key')
    end
end

这可以正常工作,但在测试环境中不可用。 一切都在测试中正常工作,直到添加了这个约束。 什么是使这项工作最有效的方法?

更新

它在我运行单独测试时有效,但在我运行套件时无效。

更新2

我调试了会话,问题与warden.user.user.key没有正确设置有关。 我打电话的时候:

login_as(@user, scope: :user) ,用户ID为1, request.session.fetch('warden.user.user.key')值返回2,即系统登录的第一个用户的ID在测试套件中。

我想你可能想在测试之间重置会话......

Capybara.reset_sessions!

请参阅https://stackoverflow.com/a/26734459/316729

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM