My Cucumber方案用于测试来自第三方提供商的身份验证。当我在注册页面上点击facebook连接按钮时,重定向到Facebook,当Facebook授权凭据时,重定向就会发回我的网站。
在我的selenium测试中,它正在使用重定向开发数据库。我知道这是因为它最终出现在一个页面上,因为测试数据库是空的,所以数据不应该是这样的。
特征/ authentication.feature:
@javascript
Scenario: Signup through Facebook
When I am on the signup page
And I click the Facebook authentication link
And I fill and submit the Facebook form
Then I should be on the Add additional information page
这在I should be on the Add additional information page
步骤失败,因为我从未到达那里。这意味着facebook用户存在一个数据行,这意味着它使用了开发数据库。我缺少一个设置吗?
特征性/支撑性/ env.rb
require 'cucumber/rails'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
Capybara.default_selector = :css
Capybara.javascript_driver = :webkit
Capybara.app_host = "http://localhost:3000"
# factory_girl Factory definitions
Dir[(Rails.root + "spec/factories/**/*.rb").to_s].each {|factory| require factory}
ActionController::Base.allow_rescue = false
Cucumber::Rails::Database.javascript_strategy = :truncation
Cucumber::Rails::World.use_transactional_fixtures = true
答案 0 :(得分:0)
删除Capybara.app_host = "http://localhost:3000"
您正在开发环境中运行服务器并使Capybara使用它。
答案 1 :(得分:0)
如果这是facebook回调的必要条件,那么请确保您的开发服务器在测试环境中运行
Capybara.app_host = 'http://localhost:3000'
Capybara.always_include_port = false
使用
rails s --environment=test