railstutorial.org - undefined method `Fabrik'
Ich versuche zu Folgen railstutorial.org und bin derzeit in Kapitel 7, wo Sie beginnen, mit Fabriken: http://railstutorial.org/chapters/modeling-and-viewing-users-two#sec:tests_with_factories
Ich bin mit Schienen 3.0.1 und ruby-1.9.2-p0
Ich kann nicht für das Leben von mir bekommen, meine rspec-tests zu passieren, obwohl der Fehler den ich bekomme, ist
Failures:
1) UsersController GET 'show' should be successful
Failure/Error: @user = Factory(:user)
undefined method `Factory' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1:0x00000101cc5608>
# ./spec/controllers/users_controller_spec.rb:9:in `block (3 levels) in <top (required)>'
meine Fabriken.rb sieht so aus:
# By using the symbol ':user', we get Factory Girl to simulate the User model.
Factory.define :user do |user|
user.name "Michael Hartl"
user.email "[email protected]"
user.password "foobar"
user.password_confirmation "foobar"
end
und das ist mein users_controller_spec.rb
Datei:
require 'spec_helper'
describe UsersController do
render_views
describe "GET 'show'" do
before(:each) do
@user = Factory(:user)
end
it "should be successful" do
get :show, :id => @user
response.should be_success
end
hier ist mein Gemfile, wenn es hilft:
source 'http://rubygems.org'
gem 'rails', '3.0.1'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'gravatar_image_tag'
group :development do
gem 'rspec-rails'
gem 'annotate-models'
end
group :test do
gem 'rspec'
gem 'webrat'
gem 'spork'
gem 'factory_girl_rails'
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht sollten Sie versuchen, die neue syntax (siehe github readme von factory girl)
Wie pro die neueste version von Factory Girl (derzeit v4.0.0)
umschreiben Fabriken.rb
dann rufen Sie es von Ihrem Benutzer-controller-specs wie:
Habe ich diese genau die gleiche Fehlermeldung. Ich habe gerade neu gestartet, mein Spork-server und Autotest-und alles war grün für mich.
In deine Skillung verwenden
statt
Ich hatte dieses problem, aber es war, weil ich platziert hatte factory girl Edelstein unter den Entwicklungs-Bereich anstelle der Messstrecke des Gemfile. Einmal unter der test-Abschnitt, es funktionierte. Ein Unterschied, den ich beachten zwischen meinem Eintrag und deiner ist, dass meine legt fest, 1.0:
Für mich, das ich hinzufügen
require 'factory_girl'
zutest_helper.rb
Meine Lösung: ich habe versehentlich eingeschlossen in die
:development
block, und musste einfach, um es in die:test
block(Ich aufgeführt habe, es hier, weil es könnte helfen, jemanden, der nicht Folgen Sie der Anleitung korrekt)
Ich habe so getan,
hinzufügen
require 'factory_girl'
zutest_helper.rb
undFür die Suche nach dieser Seite jetzt: beachten Sie, wo einst "FactoryGirl" müssen Sie jetzt "FactoryBot" in Ihren tests. Aus der thoughtbot Ankündigung Seite:
Mehr details hier:
https://robots.thoughtbot.com/factory_bot
War ich fest entschlossen, die Verwendung der neuesten version von Factory Girl, so habe ich versucht, Anpassungen im code. Hat bei mir nicht funktioniert, so habe ich
in der Gemfile zu sperren, die version auf 1.0
neu starten, spork und autotest-und es funktionierte.