2016-12-11 6 views
2

コード例の後にセッションを考案します。私はなぜ啓発セッションがリセットされたのかわかりません。 ログインフォームでfill_inclick_onを介してログインしようとすると、セッションはroot_pathにリダイレクトされた後にリセットされました!その場合、私はユーザーがログインしているという基本的な期待もできません。 私は異なるドライバでテストしました。カピバラのリセットは、各要求

RSpecの設定ファイル:

# This file is copied to spec/ when you run 'rails generate rspec:install' 
ENV['RAILS_ENV'] ||= 'test' 
require File.expand_path('../../config/environment', __FILE__) 
# Prevent database truncation if the environment is production 
abort('The Rails environment is running in production mode!') if Rails.env.production? 
require 'spec_helper' 
require 'rspec/rails' 
require 'capybara/rspec' 
require 'capybara/poltergeist' 

# NOTE: For Chrome support 
Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

# Capybara.register_driver(:poltergeist) { |app| Capybara::Poltergeist::Driver.new(app, js_errors: false) } 
# Capybara.javascript_driver = :poltergeist 

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

# Checks for pending migration and applies them before tests are run. 
# If you are not using ActiveRecord, you can remove this line. 
ActiveRecord::Migration.maintain_test_schema! 

RSpec.configure do |config| 
    config.include FactoryGirl::Syntax::Methods 
    config.include WaitForAjax 
    config.include FeatureHelpers 
    config.include Devise::TestHelpers, type: :controller 
    config.include Warden::Test::Helpers 
    config.extend ControllerHelpers, type: :controller 

    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    # If you're not using ActiveRecord, or you'd prefer not to run each of your 
    # examples within a transaction, remove the following line or assign false 
    # instead of true. 
    config.use_transactional_fixtures = false 

    # RSpec Rails can automatically mix in different behaviours to your tests 
    # based on their file location, for example enabling you to call `get` and 
    # `post` in specs under `spec/controllers`. 
    # 
    # You can disable this behaviour by removing the line below, and instead 
    # explicitly tag your specs with their type, e.g.: 
    # 
    #  RSpec.describe UsersController, :type => :controller do 
    #  # ... 
    #  end 
    # 
    # The different available types are documented in the features, such as in 
    # https://relishapp.com/rspec/rspec-rails/docs 
    config.infer_spec_type_from_file_location! 

    # Filter lines from Rails gems in backtraces. 
    config.filter_rails_from_backtrace! 
    # arbitrary gems may also be filtered via: 
    # config.filter_gems_from_backtrace("gem name") 
    config.before :suite do 
    Warden.test_mode! 
    end 
end 

答えて

1

私はenvironments/test.rb

から config.action_controller.default_url_options = {:host => "localhost:3000"}を削除する必要がありました