Estoy jugando con un proyecto de juguete en casa para comprender mejor el diseño impulsado por prueba. Al principio las cosas parecían estar yendo bien y me metí al ritmo de las pruebas fallidas, el código, la prueba de aprobación.Test Driven Design: ¿dónde me equivoqué?
Luego vine a agregar una prueba y me di cuenta de que sería difícil con mi estructura actual y que además debería dividir una clase en particular que tenía demasiadas responsabilidades. Agregar aún más responsabilidades para la próxima prueba fue claramente erróneo. Decidí dejar de lado esta prueba y refactorizar lo que tenía. Aquí es donde las cosas comenzaron a ir mal.
Era difícil refactorizar sin hacer muchas pruebas a la vez, y entonces la única opción parecía ser hacer muchos cambios y esperar terminar en algo donde las pruebas pasaran nuevamente. Las pruebas en sí eran válidas, solo tuve que romper casi todas mientras refactorizaba. La refactorización (que todavía no me gusta) me llevó cinco o seis horas antes de volver a todas las pruebas. Las pruebas me ayudaron en el camino.
Parece que salí de la pista TDD. ¿Qué crees que hice mal?
Como esto es principalmente un ejercicio de aprendizaje, estoy considerando deshacer toda esa refactorización e intentar avanzar de nuevo de una mejor manera.
Me gusta el compromiso con el aprendizaje. Creo que retroceder y aplicar la respuesta de @ phillipe es una gran idea. – btlog