Pregunta

Estoy empezando a entender BDD y RSpec y una cosa con la que realmente estoy teniendo problemas es averiguar qué tan exhaustivo debo ser con mis pruebas.

Simplemente no entiendo cuán fina debería ser mi prueba para seguir siendo útil, pero no duplicar el tiempo de desarrollo.

¿Es solo una cuestión de preferencia? ¿O hay algún estándar general para lo que debe probarse?

¿Fue útil?

Solución

Hay algunos factores a considerar aquí.

  1. La cobertura de especificaciones debería ser mayor para las características más importantes y las cosas que tienen más probabilidades de romperse.
  2. Las especificaciones deben expresar la intención del desarrollador. No escriba especificaciones para cosas triviales que usted u otra persona puedan cambiar más adelante.
  3. Prueba de comportamiento no implementación. Debería poder cambiar la implementación interna de una clase y aún así pasar las especificaciones. Esto facilita la refactorización.
  4. Cada vez que arregles errores, agregue especificaciones para evitar que el error regrese.

Me resulta útil pensar en las pruebas / especificaciones como una red de seguridad. Quiero que una especificación falle si otro desarrollador (o yo mismo) rompe algo que dediqué tiempo a hacer funcionar. No quiero que tengan que pasar mucho tiempo cambiando especificaciones para cosas que realmente no importan. Tampoco quiero evitar que mejoren la aplicación debido a las especificaciones que prueban cosas que no eran importantes para mí al escribir el código.

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