2010-01-25 7 views
40

Je travaille avec factory_girl, mais en regardant la gemme machiniste. Pourriez-vous me dire s'il vous plaît - quels sont les avantages et les inconvénients de migrer vers machiniste? Avez-vous comparé ces libs?Machinist vs FactoryGirl - avantages et inconvénients

+1

pas une réponse directe à votre question, mais vous pouvez également vérifier minijupe: http://www.stephencelis.com/2010/01/11/miniskirt.html ... comme un utilisateur factory_girl, j'aime comment cela la lib simple approche les usines avec une meilleure syntaxe et moins de poids. – foz

+40

machiniste? ouvrière? mini-jupe? Dans quel genre de forum est-ce que j'ai trébuché? –

+7

@DonalBoyle vous pourriez être plus impressionné si vous savez qu'il y a aussi un [factory_boy] (https://github.com/dnerdy/factory_boy) :) – galymzhan

Répondre

25

Machinist était réellement fortement inspiré par factory_girl, mais varié parce que l'auteur de machinist voulait une syntaxe différente. Depuis lors, factory_girl a ajouté différentes couches de syntaxe pour simuler d'autres bibliothèques d'usine (y compris la syntaxe «blueprint» de machiniste). En d'autres termes, les deux sont extrêmement similaires, juste avec une syntaxe par défaut différente. Personnellement, j'utilise factory_girl.

0

Je n'avais jamais utilisé de machiniste auparavant, mais je peux dire que factory_girl est assez facile à utiliser, à étendre et à arracher tout système de rail qu'il doit utiliser dans tout type de projet.

17

En fait, Machinist a un gros avantage sur Factory Girl: il ne frappe pas le DB pour les objets associés. Regardez ici:

Machinist vs Factory Girl: Machinist win!

Toujours pas sûr de la façon dont poignées Machinist, mais de toute façon il pourrait être un énorme coup de pouce de performance pour votre base de test.

+7

Juste remarqué dans [ce screencast] (http : //railscasts.com/episodes/158-factories-not-fixtures-revised) que vous pouvez utiliser 'FactoryGirl.build' si vous ne voulez pas frapper la base de données. Probablement une nouvelle fonctionnalité. – jrhorn424

+1

FactoryGirl.build gère la base de données pour les objets associés. FactoryGirl.build_stubbed crée des objets sans toucher à la base de données. – Kristiina

Questions connexes