FactoryGirl und Rspec

8

Ich habe dieses TDD-Geschäft sehr grün, also wäre jede Hilfe fantastisch!

Also, ich habe eine Fabrik mit folgendem:

%Vor%

Und ein Rspec-Test mit:

%Vor%

Ich bekomme einen Fehler mit der folgenden Nachricht:

%Vor%

Ist das der richtige Weg, neue Fabriken zu schaffen? Irgendwelche Ideen, was ich hier falsch mache (ich habe keinen Zweifel, dass ich etwas total falsch mache!)

BEARBEITEN: Ich denke daran, anstatt "create" auf dem zweiten Konto zu verwenden, möchte ich stattdessen .build verwenden und dann .save stattdessen?

    
Galaxy 08.12.2011, 23:40
quelle

2 Antworten

15

Speichern Sie die Datenbankinteraktionen und verwenden Sie die Methode build für Situationen wie diese.

%Vor%

Sie müssen nicht versuchen, ein Konto für valid? zu erstellen, um false zurückzugeben. Sie haben Zugriff auf das Fehlerobjekt des Kontos, auch wenn es nur im Speicher vorhanden ist. Dies wird die Datenbankinteraktionen verringern und Ihre Tests viel schneller machen.

Haben Sie überlegt, Sequenzen in Ihren Fabriken zu verwenden? Ich weiß nicht, wie weit Sie mit Ihrer RSpec / FactoryGirl Erfahrung sind, aber Sie werden feststellen, dass Dinge wie die folgenden sehr nützlich sind.

factories.rb

%Vor%

Jedes Mal, wenn Sie build oder create in der Account Factory aufrufen, erhalten Sie eindeutige E-Mails.

Denken Sie daran, dass Sie mit dem Optionen-Hash immer Werte für die Attribute in der Factory angeben können. Wenn Sie also Ihre Eindeutigkeitsprüfung für das Konto testen, würden Sie so etwas tun.

%Vor%     
Feech 08.12.2011, 23:59
quelle
0

Versuchen Sie Folgendes:

%Vor%

Das hilft - mit ähnlicher Syntax wie das, was Sie tun.

Auf der Suche nach "rspec validate_uniqueness_of" finden Sie jedoch einige elegantere Ansätze, anstatt ein Fabrikmädchen wie dieses zu verwenden!

    
andrewpthorp 08.12.2011 23:48
quelle