Wie definiere ich verschachtelte Fabriken mit FactoryGirl?

8

Bei zwei Modellen, Alert und Zipcode, muss ein Alert mindestens einen Zipcode enthalten:

%Vor%

Wie schreibe ich meine FactoryGirl-Fabriken, so dass:

  • Zipcode-Fabriken sind in ihrer eigenen Datei
  • definiert
  • Warnungsfabriken sind in einer eigenen Datei definiert
  • Alert kann sich auf die durch die Postleitzahl definierte Fabrik verlassen?

Die gesamte Dokumentation und die Beispiele, die ich gelesen habe, erwarten, dass Sie die enthaltene Klasse in der übergeordneten Factory-Datei definieren, sie alle zusammen blobben oder andere Kompromisse oder Umgehungen eingehen. Gibt es nicht einen sauberen Weg, um die Spezifikationsfabriken getrennt zu halten?

    
JD. 24.08.2012, 23:16
quelle

1 Antwort

12

Der Trick besteht darin, sicherzustellen, dass die Containerklasse, dh diejenige mit einer has_many-Anweisung in ihrer Definition, die enthaltene Klasse als ein Array in Factory girl erstellt. Zum Beispiel:

In Ihrer Spezifikation / factories / zipcodes.rb:

%Vor%

Und in spec / factories / alerts.rb:

%Vor%     
JD. 24.08.2012, 23:16
quelle