Ich versuche einen einfachen Test für mein Modell zu machen Course
, ich habe diese Factory geschrieben:
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% 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
edit: vollständiges Beispiel von Spork
%Vor%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:
Erfordern Sie es dann in test_helper.rb
nur einmal, indem Sie diese Zeile haben:
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%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 ;-) (
Tags und Links ruby-on-rails-3 factory-bot ruby-on-rails-3.1 tdd