2012-08-29 11 views
20

Es scheint nur wenige Ressourcen über die fabrication Edelstein, und ich konnte keinen guten Vergleich der Funktionen finden, die es von factory_girl unterscheiden. Ab den Versionen fabrication-2.2.3 und factory_girl-4.0.0 kann ich kaum einen Unterschied feststellen. Wie vergleichen diese Edelsteine? Was kann fabrication eine bessere Wahl machen und warum? Sind beide konvergiert?Vergleichen Factory Girl mit Fabrication

+0

Ich denke, Sie könnten eine Antwort wählen :) – apneadiving

+1

@apneadiving Ich wünsche, aber alle Antworten sind entweder subjektiv oder unvollständig. Ich wünschte, jemand könnte einen objektiven Vergleich abgeben. –

Antwort

9

Factory Girl hat ein extra Konzept von trait, das wirklich nützlich ist.

Andere Eigenschaften scheinen mehr oder weniger ähnlich.

Wenn Sie möchten, wählen, sollten Sie die Anzahl der Downloads:

könnte nützlich sein, wenn Sie Hilfe suchen /Unterstützung.

+0

Factory-Mädchen-Doc lebt hier: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md – apneadiving

+0

Danke. Es gibt einen deutlichen Unterschied in der Popularität (https://www.ruby-toolbox.com/categories/rails_fixture_replacement), aber dies bedeutet nicht unbedingt, dass einer besser ist als der andere. Es könnte sein, weil man älter ist oder mehr Mainstream ist, oder weil der andere gerade erst gereift ist. –

+0

Das Konzept der Eigenschaften ist interessant (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#traits), und ist anscheinend nicht in 'fabrication' enthalten. Vielen Dank. –

13

Nur für das, was es wert ist, finde ich die Herstellung schneller, und ich habe weniger Fehler damit erlebt. Ich denke, die große Beliebtheitslücke liegt hauptsächlich daran, dass die Herstellung viel neuer ist.

+0

Dank @Andrew. Könnten Sie bitte näher auf weniger Fehler eingehen? Welche Art von Fehlern? –

+4

Mit FG lief ich von Zeit zu Zeit in schwierig zu debuggende Fehler mit Assoziationen usw., und mit Fabrication hatte ich viel weniger davon. – Andrew

10

Wir haben mit Factory Girl angefangen, aber wir haben es zu Gunsten der Konstruktion "tatsächlicher" AR-Modellinstanzen ausgerissen; eine Entscheidung, die ich jetzt noch einmal durchkomme.

Bisher mag ich Fabricator. Es scheint einfacher zu sein, Assoziationen zu verspotten, bei denen absolut keine eine echte Datenbank treffen muss, die sich in FG nie richtig anfühlte. YMMV natürlich, und es gibt auch:

Niemals theoretisieren, bevor Sie Daten haben. Unweigerlich verdrehst du am Ende Fakten, um Theorien zu entsprechen, anstatt Theorien, um Tatsachen zu entsprechen. - Holmes' Law of Factual Theorien

+4

+1: Wenn Sie den Datenbankzugriff vermeiden möchten, funktioniert 'Fabricator.build (: factory-name)' einfach. Ich habe versucht, 'FactoryGirl.build' und' FactoryGirl.build_stubbed' ohne Erfolg zu verwenden - es scheint mit Modellverknüpfungen verwechselt zu werden und landet schließlich in der Datenbank. – rsenna

+2

Dieses Thema ist hier adressiert: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md. Fügen Sie den Haken zu ActiveSupportNotifications hinzu und Sie können sehen, ob Ihr Test die DB trifft. Sie müssen vorsichtig sein, wie Sie Ihre Fabriken strukturieren, um build_stubbed zu bekommen, um zu vermeiden, die DB zu treffen. Es funktioniert definitiv gut. – justingordon

0

ich vor kurzem eine Profilierung von Fabricator vs factory tat, weil ich neugierig auf die Leistung Kommentare von anderen erwähnt war. Ich fand auch Fabricator sein etwas schneller (aber nur bei Verwendung von Verbänden):

https://ksylvest.com/posts/2017-08-12/fabrication-vs-factorygirl

Angesichts der Laufzeiten waren so nah, ich Fabricator über factory bevorzugen, weil Vereinigungen Einrichtung wird durch Standard-Build propagieren vs erstellen (statt eine Strategie angeben müssen).