2012-08-29 22 views
20

Parece que hay pocos recursos sobre la gema fabrication, y no pude encontrar una buena comparación de las características que lo distinguen de factory_girl. A partir de las versiones fabrication-2.2.3 y factory_girl-4.0.0, apenas puedo encontrar una diferencia. ¿Cómo se comparan estas gemas? ¿Qué puede hacer que fabrication sea una mejor opción y por qué? ¿Han convergido ambos?Comparando Factory Girl con fabricación

+0

Supongo que podría elegir una respuesta :) – apneadiving

+1

@apneadiving Lo deseo, pero todas las respuestas son subjetivas o incompletas. Ojalá alguien pudiera publicar una comparación objetiva. –

Respuesta

9

Factory Girl tiene un concepto adicional de trait que es realmente útil.

Otras características parecen más o menos parecidas.

Si desea elegir uno, tenga en cuenta el número de descargas:

podría ser útil cuando se mira en busca de ayuda /apoyo.

+0

el doctor de la fábrica de la fábrica vive aquí: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md – apneadiving

+0

Gracias. Existe una clara diferencia de popularidad (https://www.ruby-toolbox.com/categories/rails_fixture_replacement), pero esto no significa necesariamente que uno sea mejor que el otro. Podría ser porque uno es más viejo, o es más convencional, o porque el otro acaba de madurar recientemente. –

+0

El concepto de rasgos es interesante (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#traits), y aparentemente no está incluido en 'fabricación '. Gracias. –

13

Por lo que vale, creo que la fabricación es más rápida, y he experimentado menos errores con ella. Creo que la gran brecha de popularidad se debe principalmente a que la fabricación es mucho más nueva.

+0

Gracias @Andrew. ¿Podrías por favor contar con menos errores? ¿Qué tipo de errores? –

+4

Básicamente con FG me topé con errores difíciles de depurar con asociaciones, etc. de vez en cuando, y con Fabricación tuve mucho menos de eso. – Andrew

10

Comenzamos con Factory Girl, pero terminamos rasgándolo a favor de construir instancias de modelo de AR "reales"; una decisión que ahora estoy revisando.

Hasta ahora, me gusta el fabricante. Parece ser más fácil simular asociaciones donde absolutamente nada tiene que llegar a una base de datos real, que nunca se sintió del todo bien en FG. YMMV, por supuesto, y también está:

Nunca teorice antes de tener datos. Invariablemente, terminas torciendo los hechos para adaptarlos a las teorías, en lugar de teorías que se ajustan a los hechos. - Ley de Holmes de las teorías fácticas

+4

+1: Cuando desee evitar el acceso a la base de datos, 'Fabricator.build (: factory-name)' solo funciona. He intentado utilizar tanto 'FactoryGirl.build' como' FactoryGirl.build_stubbed' sin éxito: parece confundirse con las asociaciones de modelos y termina golpeando la base de datos. – rsenna

+2

Este tema se trata aquí: https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md. Agregue el gancho a ActiveSupportNotifications y podrá ver si su prueba está llegando al DB. Tienes que tener cuidado de cómo estructuras tus fábricas para obtener build_stubbed para evitar golpear el DB. Definitivamente funciona bien. – justingordon

0

Hace poco hice un perfil de Fabricator vs factorygirl porque tenía curiosidad acerca de los comentarios de cumplimiento mencionadas por otros. También encontré Fabricator a ser un poco más rápido (pero sólo cuando se utiliza asociaciones):

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

Teniendo en cuenta los tiempos de ejecución estaban tan cerca, yo prefiero Fabricator sobre factorygirl debido a la creación de asociaciones de forma predeterminada propagar acumulación vs crear (en vez de tener que especificar una estrategia).

Cuestiones relacionadas