Muy bien. Has ido haciendo TDD y ya tienes un producto maduro y con miles de lines de código en producción. Tienes que añadir una nueva funcionalidad a un módulo y te dispones a escribir primero el ejemplo-especificación, como siempre.

¡No lo hagas en una clase nueva sin mirar lo que ya hay! 🙂

Parece de cajón pero pasa de vez en cuando. Para no perder el norte y ser coherentes con la arquitectura y la estructura de código que tenemos, el primer paso es mirar, en qué parte de nuestro código existente, vamos a llamar al nuevo código. Eso nos ayudará a decidir la API del nuevo método, ya que podria no ser totalmente libre, es decir, puede que ya tengamos impuestas algunas restricciones o consideraciones que hacer. Una vez hecho eso es bueno escribir la llamada a la funcion aunque todavia no exista, en este código que ya tenemos y que va a consumir la nueva función. Si nos gusta la forma en que la utilizamos y encaja con lo que ya hay, entonces podemos hacer ya TDD como siempre.

Sino, acabaremos teniendo muchas clases separadas por ahi, cuando debieran de ser una sola clase con varios métodos. TDD produce código muy muy modular, pero no hay que llegar al punto de que haya dos clases con la misma responsabilidad.