fábricas
crea/construye un objeto y luego se utiliza sólo cuando se le solicite en una prueba.
Define la "ruta de acceso feliz" del objeto, incluidas las asociaciones, en un archivo (como se menciona ryan) y luego solo mantenga un archivo para cuando cambien sus asociaciones de esquema/modelo.
Accesorios
imita lo que la base de datos debe ser similar para un solo disco, es cargado en la base de datos de prueba y luego utilizados.
Las luminarias son el estado final del modelo y viven en la base de datos, por lo que se cargan una vez y se pueden usar en las pruebas como mejor le parezca.
Múltiples archivos y usted diseña sus archivos de dispositivos para que se ocupen de cada archivo y asociación.
NewModel.create (...)
se crea una vez y se utiliza una vez en una prueba o en un solo bloque de before(:each)
Si usted tiene 100 de estos bloques, que es la escritura y el mantenimiento de 100 diferentes objetos, por no hablar de las Asociaciones como @user.profile.create(....)
100 veces.
Ventajas de las fábricas más NewModel.create
Un archivo para mantener, en lugar de grepping y reemplazar múltiples build
o create
en sus líneas de código.
Nota Hay que decir que en mi banco de pruebas que yo quiero que sea pronto como sea posible, así que estoy cayendo factorygirl y el uso de accesorios y NewModel.create avanzar. Solo para ver si lo acelera. Estoy trabajando en la teoría de que FG está ralentizando mi suite, como es let()
y before(:each)
Contrapuntos: todos estos argumentos se aplican también a los dispositivos. Los accesorios son más rápidos en general. ¿Alguna otra razón? – DGM
@DGM A pesar de que uso y me gustan los accesorios, a veces los encuentro difíciles de mantener. –