Aprendí a hacer Test Driven Development (TDD), Dependency Injection (DI) e Inversion of Control (IoC), todo al mismo tiempo. Cuando escribo código usando TDD, siempre termino usando DI en los constructores de mi clase. Me pregunto si esto se debe a cómo aprendí a hacer TDD, o si este es un efecto secundario natural de TDD.
Entonces mi pregunta es esta: ¿Seguir los principios de TDD y las pruebas de unidad de escritura que no dependen de servicios externos conducen inevitablemente a DI?