ruby-on-rails - cucumber 中的http基本身份验证测试

标签 ruby-on-rails cucumber ruby-on-rails-3.1 capybara

我正在尝试通过 http basic 测试登录,但不断出现错误,我已经上传了代码 here

我有 http_basic_authenticate_with name: "name", password: "password" 在我的应用程序 Controller 中

我的登录步骤定义是;

Given /^I login as admin$/ do
  authorize "name", "password"
end

但它不起作用,我得到了错误

    expected there to be content "Posts" in "HTTP Basic: Access denied.\n"
 (RSpec::Expectations::ExpectationNotMetError)

谁能告诉我如何让 cucumber/capybara 登录?

最佳答案

我让它使用两种不同的方法中的一种;选择你:

### Following works ONLY if performed first before even going to a page!!!
if page.driver.respond_to?(:basic_auth)
  puts 'Responds to basic_auth'
  page.driver.basic_auth(username, password)
elsif page.driver.respond_to?(:basic_authorize)
  puts 'Responds to basic_authorize'
  page.driver.basic_authorize(username, password)
elsif page.driver.respond_to?(:browser) && page.driver.browser.respond_to?(:basic_authorize)
  puts 'Responds to browser_basic_authorize'
  page.driver.browser.basic_authorize(username, password)
else
  raise "I don't know how to log in!"
end

我的测试响应了 browser_basic_authorize

encoded_login = ["#{username}:#{password}"].pack("m*")
page.driver.header 'Authorization', "Basic #{encoded_login}"

两者都是我在搜索中的几个地方找到的。

关于ruby-on-rails - cucumber 中的http基本身份验证测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473477/

相关文章:

ruby-on-rails - 如何检查模型的 before_save 回调中的修改值?

Rails 3.1 中的 JavaScript 单元测试

ruby-on-rails - 带有 Bootstrap 的带有 kaminari 的自定义 css

ruby-on-rails - 为什么carrierwave会导致NameError: uninitialized constant Micropost::PictureUploader错误?

javascript - ExecJS::RuntimeUnavailable 在 Rails 4.1.4 中

grails - 无法在Grails上将Cucumber与Geb集成

ruby-on-rails - 从excel文件读取数据到postgres数据库(Active Record)

ruby-on-rails - 为什么 Rails to_json 给出的结果与 Ruby to_json 不同?

ruby - 在不同环境中运行 Cucumber 测试

ruby-on-rails - cucumber capybara 它是如何工作的