Capybara 的 HTTP 基本身份验证 [英] HTTP basic auth for Capybara

查看:39
本文介绍了Capybara 的 HTTP 基本身份验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm writing some RSpec tests for my Rails 3 application and trying to switch from Webrat to Capybara. So far so good but the application uses HTTP basic auth to authorize my admin user, any idea how I can test that with Capybara?

这是我当前的 Webrat 步骤:

Here is my current Webrat step:

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 做到这一点?谢谢!

How do I do this with Capybara? Thanks!

推荐答案

我使用 page.driver.basic_authorize(name, password) 代替

更新:

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

At the moment, after a Capybara upgrade, I'm using this pile of workarounds:

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

这篇关于Capybara 的 HTTP 基本身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆