A Rieles/herramienta de versión específica de: How deep are your unit tests?BDD con pepino y rspec: ¿cuándo es esto redundante?
En este momento, actualmente escribo:
- características pepino (pruebas de integración) - estas pruebas en contra del HTML/JS que se devuelve por nuestra aplicación, pero a veces también prueba otras cosas, como llamadas a servicios de terceros.
- Pruebas del controlador de RSpec (pruebas funcionales), originalmente solo si los controladores tienen alguna lógica significativa, pero ahora cada vez más.
- pruebas RSpec modelo (pruebas de unidad)
veces esto es del todo necesario; es necesario probar el comportamiento en el modelo que no es completamente obvio ni visible para el usuario final. Cuando los modelos son complejos, definitivamente deben probarse. Pero otras veces, me parece que las pruebas son redundantes. Por ejemplo, ¿prueba el método foo
si solo se llama por bar
, y se prueba bar
? ¿Qué pasa si bar
es un método de ayuda simple en un modelo que se usa y se puede probar fácilmente en una función de pepino? ¿Probas el método en rspec y en Cucumber? Me resulta difícil lidiar con esto, ya que escribir más pruebas lleva tiempo y mantener múltiples "versiones" de lo que efectivamente son los mismos comportamientos, lo que hace que el mantenimiento del conjunto de pruebas requiera más tiempo, lo que a su vez encarece los cambios.
En resumen, ¿cree que hay un momento en que escribir solo las características de Cucumber es suficiente? ¿O debería probar siempre en todos los niveles? Si cree que hay un área gris, ¿cuál es su umbral para "esto necesita una prueba funcional/unidad"? En términos prácticos, ¿qué haces actualmente y por qué (o por qué no) crees que es suficiente?
EDITAR: Here's an example of what might be "test overkill." Es cierto, yo era capaz de escribir esto con bastante rapidez, pero era completamente hipotético.
estado luchando con * exactamente * el mismo problema. Administrar la relación tiempo/beneficio es difícil de hacer a veces. – brad
También tengo curiosidad sobre esto. Solo estoy tratando de averiguar cuántas pruebas de controlador/vista son realmente necesarias si tengo una capa de pruebas de cukes ejecutándose a través de mi aplicación. – wesgarrison