2013-09-04 11 views
8

Za każdym razem, gdy uruchamiam specyfikację, nawet jeśli specyfikacja przechodzi, np.Dlaczego otrzymuję "w tym Capybara :: DSL w zasięgu globalnym nie jest zalecane!"

$ rspec spec/integration/view_homepage_spec.rb 
including Capybara::DSL in the global scope is not recommended! 
. 

Finished in 0.6174 seconds 
1 example, 0 failures 

Randomized with seed 14130 

$ 

My Gemfile posiada:

group :test, :development do 
    gem 'rspec-rails' 
    gem 'capybara' 
end 

Moja spec_helper posiada:

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'rspec/autorun' 
require 'capybara' 
include Capybara::DSL 
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) 
RSpec.configure do |config| 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 
    config.use_transactional_fixtures = true 
    config.infer_base_class_for_anonymous_controllers = false 
    config.order = "random" 
end 

Gdybym wykomentuj include Capybara::DSL wtedy moje metody Kapibara jak visit nie działa tak.

+0

To właśnie tam: ':: DSL' obejmują Capybara w zakresie najwyższego poziomu. Nie jest to zalecane. Dołącz to do testów specyficznych dla kapibary. –

Odpowiedz

18

Ponieważ włączenie Capybara::DSL w zakresie globalnym nie jest zalecane.

Obejmuje to wiele metod globalnie dostępnych w systemie, które mogą zakłócać działanie własnego kodu.

Oto poprawny sposób:

RSpec.configure do |config| 
    config.include Capybara::DSL, :type => :feature 
end 
+1

': type =>: feature' powinien działać dla specyfikacji pod spec/accept, spec/features i spec/integration. Nie chcesz używać Capybara :: DSL do kontrolera, modelu, specyfikacji widoku. –

+4

Musiałem usunąć ': type =>: feature', aby to działało. – Jngai1297

+0

Należy zauważyć, że opcja 'type' już nie (ponieważ RSpec 3) 'magicznie' stosuje opcję konfiguracji do testów w' spec/features' - patrz http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3 # filetype_inference_disabled_by_default – sameers

Powiązane problemy