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
Antwort
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.
Factory-Mädchen-Doc lebt hier: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md – apneadiving
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. –
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. –
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.
Dank @Andrew. Könnten Sie bitte näher auf weniger Fehler eingehen? Welche Art von Fehlern? –
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
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
+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
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
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).
Ich denke, Sie könnten eine Antwort wählen :) – apneadiving
@apneadiving Ich wünsche, aber alle Antworten sind entweder subjektiv oder unvollständig. Ich wünschte, jemand könnte einen objektiven Vergleich abgeben. –