Pregunta

He comenzado a escribir pruebas usando RSPEC para un proyecto realmente antiguo.Los modelos que estoy probando son todos actores activos (Backend es Oracle). He leído algunos blogs que dicen que deberíamos usar burlón y stubbing / fijaciones / chicas de fábrica sobre disparar un SQL real. Estoy confundido.Tendré que provocar muchos métodos y crear muchos objetos.¿Es esta una buena práctica?

¿Fue útil?

Solución

Cuando está probando un modelo, es bueno que sus pruebas se integren contra la base de datos. Es decir, no trates de burlarse de las cosas de ActiverCord, y solo usar un objeto modelo. FactoryGirl y la fabricación son solo accesos directos convenientes para construir objetos modelo reales, y son las mejores prácticas cuando se trata de probar los modelos Activerecord.

Dado que este es un código heredado, sugeriría no burlarse o derivarse demasiado en el código antiguo, ya que el aislamiento solo funciona si cada componente se prueba de forma aislada.

Sin embargo, al escribir código con TDD, burlándose y taludos tiene muchos beneficios:

  • le da pruebas de grano fino (si se rompe un método, sus pruebas le dicen cuál)
  • Tus pruebas se ejecutan mucho más rápido y, por lo tanto, su ciclo TDD es más corto
  • le permite hacer afirmaciones sobre cómo interactúa su código con otros objetos
  • Si tiene que apoderarse y burlarse de otros modelos excesivamente para aislar un modelo, generalmente es una buena señal de que su código está demasiado acoplado y merece un refactor

Otros consejos

Normalmente usaría los talones, entonces puede ejecutar pruebas sin la carga AR, y se ejecutarán mucho más rápido.

Personalmente, creo que la prueba de datos falsos no es una prueba ... Tal vez en un entorno de desarrollo haciendo TDD ... Tal vez ..., pero para un entorno de prueba, debe estar lo más cerca posible de lo más real posible.

Esto es, por supuesto, mi opinión y puede que no sea la escuela de pensamiento actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top