Abogo por Fixture Replacement 2. Sus atributos de modelo predeterminados (no se preocupan) se almacenan en un solo lugar, db/example_data.rb, y proporcionan objetos válidos rápidamente. Cualquier atributo que especifique al crear sobrescribe los atributos predeterminados, es decir, los datos sobre los que se refieren es en la prueba, y nada más.
Sus datos de ejemplo también pueden referirse a otros modelos predeterminados, que están representados por procesos con evaluación diferida, por lo que puede anular asociaciones fácilmente cuando lo desee.
La versión 2 proporciona un formato de definición mucho más limpio, al tiempo que proporciona los métodos mágicos new_*, create_*, and default_*
para cada modelo.
Evitaría cualquier tipo de esquema de "escenarios" que fomente la construcción de más y más datos de prueba que son difíciles de leer más adelante. Puede crear objetos con nombre (personalizados) con FR2, pero nunca lo he encontrado necesario.
P.S. Asegúrese de tener en cuenta también su estrategia de prueba de la unidad : los dispositivos y todos sus análogos son objetos reales que llegan a la base de datos, lo que los convierte en pruebas funcionales o de integración. Actualmente estoy usando la burla de RSpec junto con stub_model()
y la última joya unit_record para no permitir el acceso a la base de datos.
votaron por "chica" – DFectuoso