Aprendi a fazer o desenvolvimento orientado a testes (TDD), injeção de dependência (DI) e inversão de controle (IoC), tudo ao mesmo tempo. Quando escrevo código usando TDD, sempre acabo usando DI nos construtores da minha classe. Eu estou querendo saber se isso é por causa de como eu aprendi a fazer TDD, ou se este é um efeito colateral natural do TDD.
Portanto, minha pergunta é a seguinte: Seguir os princípios do TDD e escrever testes de unidade que não dependem de serviços externos levam inevitavelmente ao DI?