Para responder a su 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. Esta es la regla general 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 unitaria)
En caso afirmativo, he descubierto que es mucho más fácil crear los datos dentro de la prueba en sí misma exactamente porque puedo ver lo que se está pasando. En estos casos, generalmente buscaré una biblioteca similar a Jasmine para usar porque encuentro que facilita la creación y el mantenimiento de los datos de prueba. Sin embargo, esa es una preferencia personal: use lo que haga que su trabajo sea más fácil.
Si no, entonces probablemente esté probando el sistema en sí. En estos casos, a menudo cargo datos de una fuente externa, las razones aquí son:
- Esta prueba no se trata de la claridad del código para los programadores (aunque eso sigue siendo importante, alguien tiene que mantener esto), se trata de ejecutar suficientes tipos diferentes de datos en todo el fragmento del sistema para estar razonablemente seguros 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, por lo que no puedo esperar que estén editando código.
Tan larga respuesta corta, depende de lo que esté probando y por qué. Ambos enfoques son útiles y tienen su lugar: elija lo que funcione mejor para su situación.