ruby-on-rails - capybara 的 HTTP 基本认证

标签 ruby-on-rails testing authentication webrat capybara

我正在为我的 Rails 3 应用程序编写一些 RSpec 测试并尝试从 Webrat 切换至 Capybara .到目前为止一切顺利,但该应用程序使用 HTTP 基本身份验证来授权我的管理员用户,知道如何使用 Capybara 对其进行测试吗?

这是我当前的 Webrat 步骤:

it 'should authenticate for admin' do
  basic_auth('user', 'secret')
  visit '/admin'
  response.status.should eql 200
  response.status.should_not eql 401
end

如何使用 Capybara 执行此操作?谢谢!

最佳答案

我使用 page.driver.basic_authorize(name, password) 让它工作

更新:

目前,在升级 Capybara 之后,我正在使用这堆解决方法:

if page.driver.respond_to?(:basic_auth)
  page.driver.basic_auth(name, password)
elsif page.driver.respond_to?(:basic_authorize)
  page.driver.basic_authorize(name, password)
elsif page.driver.respond_to?(:browser) && page.driver.browser.respond_to?(:basic_authorize)
  page.driver.browser.basic_authorize(name, password)
else
  raise "I don't know how to log in!"
end

关于ruby-on-rails - capybara 的 HTTP 基本认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329985/

相关文章:

java - 仅在测试中执行 Java 代码

authentication - Nodejs,通过https进行身份验证并重定向到http

ruby-on-rails - Ruby - 将文本文件转换为数组

ruby-on-rails - 如何将查询转换为在 Rails 中高效执行?

vue.js - Cypress Vue 组件测试从已挂载发出的事件

postgresql - 这些凭据与我们的记录不符,laravel 5.2

authentication - 在 Subversion 中,我可以是登录名以外的用户吗?

ruby-on-rails - PG::ConnectionBad: FATAL: Peer authentication failed for user 'username' 错误

ruby-on-rails - Ruby on Rails - 计算数字范围的大小

c# - 寻找一种在 Visual C# 中编写和测试代码的简单方法