Não é raro acontecer de você precisar criar teste unitário para um dado código legado que, por qualquer motivo, não possui suporte para utilização de desvios (ex: IoC/DI). Nestes casos, ou opta-se por não escrever o teste, ou escreve-se um teste de integração / blackbox englobando rotinas periféricas que aquele fragmento sendo testado faz uso ou, o código legado é alterado para permitir o registro de desvios para teste.
Não acredito que qualquer uma das opções acima seja algo confortável, e acho que a grande maioria das pessoas deve concordar com isto.
Tenha em mente que: Códigos não testados vivem dentro da caixa de Schrödinger. Eles podem estar funcionando ou não. Você só vai ter certeza quando alguém passar a usá-lo.
Mas calma! Este problema não tende mais a afligir programadores .Net. Já faz algum tempo, a Microsoft liberou um casal de ferramentas que visa facilitar a vida do desenvolvedor de testes. Estas ferramentas são as seguintes:
- Pex: Framework de whitebox testing que permite, de forma automatizada, encontrar fragilidades e problemas em seu código. Possui um grande foco em prover um alto nível de cobertura de código.
- Moles: Framework, baseado em delegades, para criação de desvios e stubs para plataforma .Net.
Este artigo visa cobrir apenas a utilização de Moles, porém eu gostaria de frisar que o Pex é uma ferramenta tão interessante quanto e vale muito a pena dar uma olhada que seja.*