2012-12-25 6 views
5

Ich bin eine Beispielanwendung für rspec Tests zu schaffen, und ich folgte die folgenden Schritte In Gemfile:konnte nicht Setup Rspec & Capybara in Rails 3.2

gem "rspec-rails", :group => [:test, :development] 
group :test do 
    gem "factory_girl_rails" 
    gem "capybara" 
    gem "guard-rspec" 
end 

dann die folgenden Schritte ausgeführt:

  1. Bündel.
  2. Schienen g rspec: install.
  3. mkdir spec/unterstützung spec/modelle spec/routing.

Added "erfordern Capybara/rspec" zu meinen spec_helper Datei

eine Probe-Test, wie unten Erstellt:

require 'spec_helper' 
describe "Users" do 
    describe " List users" do 
    it "List all users" do 
     get users_path 
     page.has_content?('List Users') 
    end 
    end 
end 

aber es nicht funktioniert, die folgenden Fehler bekommen


undefined local variable or method `page' 

* Ich vermute, dass ich den Capybara nicht ordnungsgemäß konfiguriert wurde, lassen Sie mich den richtigen Weg zur Konfiguration der Capybara wissen.

Antwort

5

Got arbeitet das Capybara dsl nach einschließlich Helfer

config.include Capybara::DSL 
+1

Bitte akzeptieren Sie diese Antwort, wenn es Ihre Lösung war. Meiner Meinung nach ist es besser, Ihre Konfiguration zu überarbeiten, wenn Sie mit dem übereinstimmen, was Capybara 2.0 und RSpec in der Struktur Ihres Verzeichnisses ** spec/** erwarten. Sehen Sie sich die zwei Links in meiner Antwort für Details an. –

9

spec Da Sie nicht eine Version für Capybara in Ihrem Gemfile, angegeben haben, gehe ich davon aus Sie >= 2.0 Version haben, die, dass jedes Mittel Tests, die page verwenden, sollten unter spec/features Verzeichnis gehen.

Werfen Sie einen Blick auf die folgenden Links für weitere Informationen:

Wenn Sie eine spec/Features Verzeichnis nicht verwenden möchten, sollten Sie in der Lage sein, einen Test als feature auf folgende Weise zu markieren:

require 'spec_helper' 
describe "Users" do 
    describe " List users", type: :feature do 
    it "List all users" do 
     get users_path 
     page.has_content?('List Users') 
    end 
    end 
end 
+2

verschiebe meine Testdateien von spec/Anfragen -> spec/features funktionierte für mich. kein Fehler mehr beim Besuch. Vielen Dank! – prodigerati

0

Sein neuen Capybara DSL Check-outer Wert für Integrationstests (die Funktionen Verzeichnis beachten):

# spec/features/user_list_spec.rb 
require 'spec_helper' 

feature 'User list' do 
    scenario 'List all users' do 
    visit users_path 
    expect(page).to have_content 'List Users' 
    end 
end 

ich eine Blog-Post mit einigen detaillierten Informationen über End-to-end testing with RSpec integration tests and Capybara mit RSpec 2.0 erwartet Syntax, zusammen mit Capybara DSL schrieb für feature/scenarios.

0

Sie können dies auch zu Ihrem spec_helper hinzufügen.rb:

require 'capybara/rspec'