在功能规范中,使用 Warden 设置用户,以便在 Ruby on Rails 应用程序中的操作中进行重定向



我能够获得伪造的经过身份验证的功能规范(通过rspec)使用我的应用程序,使用涵盖下一个请求发生的login_as。但是,对于包含 Rails 控制器操作重定向的操作,似乎无法为请求(重定向)设置用户代理。有没有办法告诉应用程序对功能规范中的所有请求使用login_as

因此,这个旧的 GitHub 线程评论似乎有一个解决方案,在我的初始测试中仍然有效。

module Warden
module Test
module Helpers
def login_permanently_as(user, opts = {})
Warden::Manager.on_request do |proxy|
opts[:event] || :authentication
proxy.set_user(user, opts)
end
end
end
end
end

猴子补丁Warden::Test::Helpers添加一个利用on_request的方法。现在在我的 Capybara 功能规范中,我不再需要为每次点击新页面不断设置login_as,并且它是为那些在执行过程中重定向的操作设置的。

相关内容

  • 没有找到相关文章

最新更新