Capybara 的 HTTP 基本身份验证 [英] HTTP basic auth for Capybara
本文介绍了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屋!
查看全文