Para responder tu pregunta directamente, no, tampoco creo que sea un antipatrón cuando se usa correctamente.
--- Respuesta más detallada ---
Desde mi experiencia, creo que esto depende en gran medida del objetivo de su prueba. Aquí está la regla de oro que he usado en el pasado y me ayudó a decidir:
¿Realmente estás probando una pequeña unidad de código? (Una verdadera prueba de unidad)
Si es así, entonces es mucho más fácil crear los datos dentro de la prueba exactamente porque puedo ver lo que se está pasando. En estos casos, generalmente buscaré un Jasmine , es una biblioteca para usar porque me parece que facilita la creación y el mantenimiento de los datos de prueba. Sin embargo, esa es una preferencia personal: utilice cualquier cosa que facilite su trabajo.
Si no, entonces probablemente estés probando el sistema. En estos casos, a menudo cargo datos de una fuente externa, las razones aquí son:
- Esta prueba no tiene que ver con la claridad del código para los programadores (aunque eso todavía es importante, alguien tiene que mantener esto), se trata de ejecutar suficientes tipos diferentes de datos en toda la parte del sistema para estar razonablemente seguro de que funciona.
- A menudo escribiré el código de plomería para cargar y usar los datos de prueba, pero los datos en sí son creados por otra persona (generalmente un miembro del personal de control de calidad en mi caso). Estas personas no suelen ser programadores, así que no puedo esperar que estén editando el código.
La respuesta es breve, depende de lo que estés probando y por qué. Ambos enfoques son útiles y tienen su lugar: elija qué funciona mejor para su situación.