FactoryGirl, warum werde ich schon registriert oder nicht initialisiert?

7

Ich versuche einen einfachen Test für mein Modell zu machen Course , ich habe diese Factory geschrieben:

%Vor%

the course_spec.rb:

%Vor%

aber, ich erreiche diese Zeile

%Vor%

Ich bekomme den Fehler:

%Vor%

Wenn ich die Kursdefinition in der Fabrik kommentiere, bekomme ich:

%Vor%

Irgendeine Idee bitte?

Hier ist meine Gem Environment:

%Vor%

BEARBEITEN

Die Datei spec_helper.rb:

%Vor%     
simo 03.01.2012, 05:31
quelle

5 Antworten

18

Haben Sie versucht, diese Zeile zu entfernen?

%Vor%

Ich benutze Factory Girl (mit dem factory_girl_rails gem) & amp; Shouga mit einem 3.1 Projekt und musste nicht explizit Definitionen laden.

    
Jef 03.01.2012, 09:51
quelle
4

Alles, was Sie tun sollten, ist require 'rspec_factory_girl' und dann die Definitionen.

Wenn Sie es in spec_helper.rb einfügen, werden im Allgemeinen alle Dateien im Verzeichnis spec/ benötigt. Wenn Ihre Fabriken beispielsweise in spec/factories.rb definiert sind, werden sie automatisch geladen.

Das erfordert jedoch, dass Sie require 'spec_helper' am Anfang Ihrer Spezifikationsdatei hinzufügen, was Sie anscheinend nicht tun.

Wenn Sie die Datei spec_helper.rb nicht auf diese Weise verwenden möchten, müssen Sie nur manuell die Definition angeben, z. B. require 'factories' .

Ein kleiner Trick, wenn Sie etwas wie spork verwenden und Ihre Fabriken vor jedem Lauf manuell neu laden müssen

%Vor%

edit: vollständiges Beispiel von Spork

%Vor%     
Jakub Arnold 03.01.2012 10:04
quelle
1

Ich habe diesen Fehler auch gefunden:

%Vor%

Und ich habe das Problem behoben, indem ich :require => false in meinem Gemfile wie folgt hinzugefügt habe:

%Vor%

Erfordern Sie es dann in test_helper.rb nur einmal, indem Sie diese Zeile haben:

%Vor%     
Kenneth John 11.07.2014 04:12
quelle
1

Hier ist, was bei Rails 4.2.6 für mich funktioniert hat.

Fügen Sie in rails_helper.rb diese Bibliotheken hinzu

%Vor%

Fügen Sie diese zum Konfigurationsteil

hinzu %Vor%     
rider_on_rails 17.03.2016 12:03
quelle
0

In meinem Fall ist es passiert, wenn ich zufällig zwei Factory-Dateien mit dem gleichen Schlüssel wie folgt eingefügt habe:

%Vor%

Das ist offensichtlich, aber diese Situation passierte, als ich unter No-Git-Umgebung (!) entwickelte und Quelldateien nach rsync (1) legte. Wenn ich book.rb in books.rb von meinem lokalen PC und rsync in dev-env umbenenne, existieren sowohl book.rb als auch books.rb, und das hat die Situation hier verursacht ;-) (

    
Fumisky Wells 23.01.2014 10:09
quelle