Editar:
Su enfoque de abajo hacia arriba para las pruebas unitarias es tan válido como mi enfoque de arriba hacia abajo, siempre que no comience demasiado pequeño. Si tiene pruebas funcionales automatizadas, no debería necesitar probar el método que utiliza otros métodos que ha probado.
————————-
- ¿Cómo realiza el software el trabajo utilizando el hardware?
- ¿Cuáles son las frustraciones comunes al escribir documentación para un proyecto de software?
- ¿Cuáles son algunos de los hacks de código más ingeniosos pero simples que podrían facilitarnos la vida?
- ¿VB.Net está muriendo? ¿Vale la pena aprenderlo?
- ¿Cuáles son los beneficios clave del software SMS College?
¡Hay tantas formas de probar tu aplicación! La cuestión de cuándo comenzar a escribir exámenes es en realidad relativamente fácil, la cuestión de cuándo parar puede ser mucho más difícil, como mencionaste.
Deberá comenzar a escribir pruebas tan pronto como comience a escribir su código. (Si desea escribir pruebas, si es un código desechable para una prueba de concepto o una demostración, no se moleste).
Entonces, ¿para qué escribes las pruebas? No hay regla de corte y secado. Obviamente, no pierdas el tiempo escribiendo pruebas que prueban captadores y establecedores y otros métodos simples. Comenzaría a escribir en ese nivel del método que llama a otros métodos. Si sus pruebas fallan en ese nivel, puede ser apropiado escribir pruebas para algunos de los métodos llamados más complejos. Si va más allá de esos 2 o 3 niveles de escritura profunda, sus pruebas consideren si hay una manera de refactorizar.
La otra cosa que me gusta hacer desde el principio es escribir pruebas funcionales automatizadas usando una herramienta como Cucumber. El beneficio de esto es que prueba en un nivel de recuadro negro (o recuadro blanco si lo desea), puede escribir sus características en un lenguaje sencillo que los propietarios de los productos pueden leer y aceptar que es lo que quieren que haga una característica, y usted puede refactorizar el código debajo de todo lo que desee sin preocuparse demasiado por romper las pruebas.
Se atan a la interfaz de usuario, pero si se escriben correctamente, generalmente solo se trata de cambiar algunas cadenas cuando se cambian los elementos de la interfaz de usuario.
Escribe una prueba para una historia de usuario cuando implementa esa historia de usuario y en poco tiempo tiene un conjunto completo de pruebas automatizadas funcionales que puede ejecutar regularmente en su código para informarle en cualquier momento que algo se rompa.
No podrá probar cada cosa con una prueba automatizada. No se moleste en intentarlo, deje las pruebas más difíciles para humanos, pero use pruebas automatizadas como una regresión de línea de base automática.
Hay muchas más consideraciones relacionadas con el aislamiento de la unidad bajo prueba, etc., pero si escribe pruebas unitarias de alto nivel para todo lo que sea práctico y pruebas automatizadas funcionales para la mayoría de los criterios de aceptación de sus historias de usuario, le servirá muy bien durante mucho tiempo. término.
Una nota: al principio parecerá que se necesita demasiado esfuerzo para crear las pruebas. Síguelo. Si espera que su aplicación tenga una vida útil significativa, esto dará sus frutos en dividendos más adelante.