0

私の Cucumber シナリオは、サード パーティ プロバイダーからの認証をテストするために使用されます。登録ページで Facebook の接続ボタンをクリックすると、Facebook にリダイレクトされ、資格情報が Facebook によって承認されると、私の Web サイトにリダイレクトされます。

私のセレン テストでは、リダイレクト時に開発データベースを使用しています。テストデータベースが空であるため、そうであってはならないデータがあるページになってしまうため、これを知っています。

機能/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
4

2 に答える 2

0

削除Capybara.app_host = "http://localhost:3000" サーバーを開発環境で実行し、Capybara に使用させています。

于 2012-05-17T03:51:56.867 に答える
0

これがFacebookコールバックに必要な場合は、開発サーバーがテスト環境で実行されていることを確認してください

   Capybara.app_host = 'http://localhost:3000'
   Capybara.always_include_port = false

使用して

rails s --environment=test
于 2013-05-31T07:01:04.690 に答える