O código de teste não deve ser compilado na compilação final. TDD ou não, os testes pertencem a uma estrutura de diretório separada (possivelmente no mesmo pacote) para que o processo de construção possa ignorar todos os testes ao construir o pacote.
Manter testes no mesmo pacote , no entanto, permite o acesso por trás dos bastidores que os testes podem precisar que uma interface pública não deseja fornecer. Há debate sobre este ponto.
Como um programador Java (minhas desculpas, eu não tenho acesso a um ambiente AC # / .net), acho que a unidade testa a enorme chamada pública de front-end com todas as várias variáveis assustadoras (muitas vezes envolvendo muitos mocks para obter os objetos corretos até os testes corretos). Fazer algo protected
(em vez de private
ou expor a public
) significa que algo no mesmo pacote (seja em outro diretório) ainda poderá invocá-lo.