Estoy experimentando con el desarrollo basado en pruebas, y descubrí que a menudo llego a la siguiente situación:
- Escribo pruebas para alguna funcionalidad X. Esas pruebas fallan.
- Al intentar implementar X, veo que necesito implementar alguna característica Y en una capa inferior de mi código. Entonces...
- Escribo pruebas para Y. Ahora ambas pruebas para X e Y fallan.
Una vez que tenía 4 funciones en diferentes capas de código trabajando al mismo tiempo, y estaba perdiendo mi enfoque en lo que realmente estoy haciendo (demasiadas pruebas fallan al mismo tiempo).
Creo que podría resolver esto poniendo más esfuerzo en la planificación de mis tareas incluso antes de comenzar a escribir pruebas. Pero en algunos casos no sabía que tendría que profundizar más, porque, por ejemplo, no conocía muy bien la API de la capa inferior.
¿Qué debo hacer en tales casos? ¿TDD tiene alguna recomendación?