2012-08-29 16 views
20

Wydaje się, że istnieje niewiele zasobów o klejnocie fabrication i nie mogłem znaleźć dobrego porównania funkcji, które odróżniają go od factory_girl. Od wersji fabrication-2.2.3 i factory_girl-4.0.0, nie mogę znaleźć żadnej różnicy. Jak porównać te klejnoty? Co może uczynić fabrication lepszym wyborem i dlaczego? Czy obaj się zjednoczyli?Porównywanie Girl Factory z produkcją

+0

Zgaduję, że możesz wybrać odpowiedź :) – apneadiving

+1

@apneadiving Życzę, ale wszystkie odpowiedzi są albo subiektywne, albo niekompletne. Chciałbym, żeby ktoś mógł zamieścić obiektywne porównanie. –

Odpowiedz

9

Factory Girl ma dodatkową koncepcję trait, która jest naprawdę przydatna.

Inne funkcje wydają się mniej więcej podobne.

Jeśli chcesz wybrać jeden, należy rozważyć liczbę pobrań:

może być przydatna, gdy szukasz pomocy /wsparcie.

+0

Doktorat z fabryki mieszka tutaj: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md – apneadiving

+0

Dzięki. Istnieje wyraźna różnica w popularności (https://www.ruby-toolbox.com/categories/rails_fixture_replacement), ale niekoniecznie oznacza to, że jedna jest lepsza od drugiej. Może tak być, ponieważ jeden jest starszy, lub jest bardziej powszechny, lub dlatego, że ostatnio właśnie się dojrzal. –

+0

Pojęcie cech jest interesujące (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#traits) i najwyraźniej nie jest zawarte w 'fabrication'. Dzięki. –

13

Tylko za to, co jest warte, uważam, że produkcja jest szybsza, a ja doświadczyłem mniej błędów. Myślę, że duża luka w popularności wynika głównie z tego, że produkcja jest znacznie nowsza.

+0

Dzięki @Andrew. Czy mógłbyś wyjaśnić, że masz mniej błędów? Jakie rodzaje błędów? –

+4

Zasadniczo z FG natrafiłem na trudne do debugowania błędów ze skojarzeniami itp. Od czasu do czasu, a przy Fabrication miałem o wiele mniej tego. – Andrew

10

Zaczęliśmy od Factory Girl, ale zakończyliśmy zdzieranie na rzecz konstruowania "rzeczywistych" egzemplarzy modelu AR; decyzja, którą teraz podejmuję.

Do tej pory lubię Fabricator. Łatwiej jest wyśmiewać skojarzenia, w których absolutnie nic nie ma potrzeby, aby trafiło w prawdziwą bazę danych, co w FG nigdy nie było w porządku. YMMV, oczywiście, i jest jeszcze:

Nigdy nie używaj teoretyzmu zanim nie masz danych. Niezmiennie kończy się to przekręcaniem faktów, aby dopasować je do teorii, zamiast do teorii pasujących do faktów. - Prawo Holmesa z faktycznych Teorie

+4

+1: Gdy chcesz uniknąć dostępu do bazy danych, po prostu działa "Fabricator.build (: nazwa-fabryki)". Próbowałem używać zarówno 'FactoryGirl.build' i' FactoryGirl.build_stubbed' bez powodzenia - wydaje się, że myli się z skojarzeniami modelu, i kończy trafienie w bazę danych. – rsenna

+2

Ten temat jest dostępny tutaj: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md. Dodaj hak do ActiveSupportNotifications i zobacz, czy twój test trafia do DB. Musisz być ostrożny, jak budować swoje fabryki, aby uzyskać build_stubbed, aby uniknąć trafienia w DB. To na pewno działa dobrze. – justingordon

0

Niedawno zrobiłem profilowanie Wykonawca vs FactoryGirl bo byłem ciekaw o komentarzach wydajności wymienionych przez innych. Znalazłam też Wykonawca będzie nieco szybciej (ale tylko przy użyciu stowarzyszenia):

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

Biorąc pod uwagę czasy pracy były tak blisko, wolę Wykonawca nad FactoryGirl ponieważ utworzenie stowarzyszenia będzie domyślnie propagować build vs tworzyć (zamiast o konieczności określenia strategii).

Powiązane problemy