2017-01-16 4 views
0

Я включил Capybara в свои интеграционные тесты. Я установил файл test_helper в соответствии с документацией.Ошибка проверки стойки при использовании Capybara с Rails TestCase

ENV['RAILS_ENV'] ||= 'test' 
require File.expand_path('../../config/environment', __FILE__) 
require 'rails/test_help' 
require 'capybara' 
require 'capybara/dsl' 
require 'vcr' 

class ActiveSupport::TestCase 
    include Devise::Test::IntegrationHelpers 
    # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. 
    fixtures :all 

    # Add more helper methods to be used by all tests here... 
    VCR.configure do |c| 
    c.hook_into :webmock 
    c.cassette_library_dir = 'vcr_cassettes' 
    c.default_cassette_options = { :record => :once } 
    end 
end 

class ActionDispatch::IntegrationTest 
    # Make the Capybara DSL available in all integration tests 
    include Capybara::DSL 

    # Reset sessions and driver between tests 
    # Use super wherever this method is redefined in your individual test classes 
    def teardown 
    Capybara.reset_sessions! 
    Capybara.use_default_driver 
    end 
end 

Чтобы проверить свой интеграционный тест с использованием Capybara, я создал метод в моем файле portfolio_flow_test (также требуется test_helper.rb)

test "signed in user can visit portfolio index page" do 
    @user = users(:nicholas) 
    sign_in @user 
    visit portfolios_path 
    assert_select "h1", "Portfolios" 
end 

Я получаю эту ошибку на все мои тестах

ArgumentError: rack-test requires a rack application, but none was given 

Драйвер Capybara по умолчанию - это стойка, поэтому я не понимаю, почему это происходит, когда я запускаю тесты.

ответ