2010-01-25 10 views
40

Sto lavorando con factory_girl, ma guardando la gemma del macchinista. Potresti dirmi per favore - quali sono i pro e i contro della migrazione al macchinista? Hai confrontato quelle libs?Machinist vs FactoryGirl - pro e contro

+1

non è una risposta diretta alla tua domanda, ma potresti anche controllare minigonna: http://www.stephencelis.com/2010/01/11/miniskirt.html ... come utente factory_girl, mi piace come questo la lib semplice si avvicina alle fabbriche con una sintassi migliore e meno peso. – foz

+40

macchinista? operaia? mini-gonna? in che tipo di forum sono incappato? –

+7

@DonalBoyle potresti impressionarti di più se saprai che c'è anche un [factory_boy] (https://github.com/dnerdy/factory_boy) :) – galymzhan

risposta

25

Machinist in realtà era fortemente ispirato da factory_girl, ma variava perché l'autore del macchinista voleva una sintassi diversa. Da allora, factory_girl ha aggiunto diversi livelli di sintassi per simulare altre librerie di fabbrica (inclusa la sintassi "blueprint" del macchinista). In altre parole, entrambi sono estremamente simili, solo con una sintassi predefinita diversa. Personalmente, uso factory_girl.

0

Non ho mai utilizzato un macchinista, ma posso dire che factory_girl è abbastanza facile da usare, estendere e strappare qualsiasi centrica di rotaia che deve essere utilizzata in qualsiasi tipo di progetto.

17

In realtà, Machinist ha un grande vantaggio su Factory Girl: non colpisce il DB per gli oggetti associati. Guardate qui:

Machinist vs Factory Girl: Machinist win!

Ancora non è sicuro di come Machinist gestisce questo, ma comunque potrebbe essere un enorme incremento delle prestazioni per la vostra base di prova.

+7

Appena notato in [questo screencast] (http : //railscasts.com/episodes/158-factories-not-fixtures-revised) che puoi usare 'FactoryGirl.build' se non vuoi colpire il database. Probabilmente una nuova funzionalità. – jrhorn424

+1

FactoryGirl.build in realtà elenca il database per gli oggetti associati. FactoryGirl.build_stubbed crea oggetti senza colpire il database. – Kristiina