2013-09-04 3 views
8

Jedes Mal, wenn ich eine Spezifikation ausführen, auch wenn die Spezifikation passiert, z.Warum bekomme ich "inklusive Capybara :: DSL im globalen Umfang wird nicht empfohlen!"

$ 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 

$ 

Mein Gemfile hat:

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

Mein spec_helper hat:

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 

Wenn ich die include Capybara::DSL dann Methoden meine Capybara Kommentar aus wie visit funktionieren nicht.

+0

Es ist genau dort: 'umfasst Capybara :: DSL' in dem Top-Level-Umfang. Dies wird nicht empfohlen. Fügen Sie es in Ihre Capybara-spezifischen Tests ein. –

Antwort

18

Weil die Verwendung von Capybara::DSL im globalen Bereich nicht empfohlen wird.

Dies beinhaltet viele Methoden global im System, die Ihren eigenen Code beeinträchtigen könnten.

Hier ist der richtige Weg:

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

': type =>: feature' sollte für Spezifikationen unter Spezifikation/Akzeptanz, Spezifikation/Funktionen und Spezifikation/Integration arbeiten. Sie möchten nicht Capybara :: DSL für Controller, Modell, View-Spezifikationen verwenden. –

+4

Ich musste ': type =>: feature' entfernen, damit es funktioniert. – Jngai1297

+0

Bitte beachten Sie, dass die "type" -Option nicht mehr (seit RSpec 3) "magisch" die Konfigurationsoption auf Tests in 'spec/features' anwendet - siehe http://myronmars.to/n/dev-blog/2014/05/note-changes-in-rspec-3 # filetype_inference_disabled_by_default – sameers

Verwandte Themen