我正在为我的 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/