fundo
Estou trabalhando em um projeto com C # .NET e acabei de adicionar um novo projeto de teste de unidade à minha solução no Visual Studio. A maneira que eu sempre faço isso é:
- Crie um novo projeto de teste de unidade.
- Faça com que esse projeto inclua uma referência ao projeto em teste .
- Basta incluir (
using
) o projeto.
Eu acho que a outra maneira que você poderia fazer isso seria ...
- Crie um novo projeto de teste de unidade.
- Faça com que esse projeto inclua uma referência ao projeto em teste .
- Faça o projeto de teste de unidade compartilhar um espaço para nome com o projeto em teste .
Questão
Existe uma maneira aceita de fazer isso para projetos no mundo .NET ou isso é apenas uma opinião e não há mais nada?
MethodName_StateUnderTest_ExpectedBehavior()
, e tenho certeza que você poderá encontrar nomes não conflitantes adequados para as classes de teste. A verdadeira questão é: você realmente deseja que esses tipos apareçam no seu intelecto?Respostas:
Seus testes de unidade estão em um projeto separado e cumprem uma função separada do código principal; portanto, colocá-los em um espaço para nome separado faz mais sentido para mim.
Se você está pensando em colocá-los no mesmo espaço para nome apenas para salvar a
using
linha, não o faça. Menos código é bom, código mais claro é melhor.fonte
Eu usei o projeto de testes de unidade com o mesmo espaço para nome do projeto real (removendo manualmente o
Tests
sufixo no espaço para nome do projeto de teste) por alguns anos sem zero problemas.Eu acho que isso leva a um código mais direto, então eu geralmente sugiro seguir essa abordagem. Algumas das desvantagens, como possíveis conflitos de espaço para nome, não devem ocorrer ao lidar com um projeto de teste de unidade, pois você já está seguindo algumas convenções de teste para isso, como sufocar todas as classes de teste
Tests
. Além disso, para mim, parece bastante intuitivo ter as classes e as classes de teste no mesmo espaço para nome.Algumas pessoas pensam que é estranho, mas isso realmente não deve ser o caso, pois muitos assemblies de estrutura também usam essa estratégia de ter várias DLLs que têm classes nos mesmos espaços de nomes: não é uma coisa surpreendente ou ruim. praticar por si só.
Eu acho que este é mais sobre o gosto pessoal, por isso não é realmente "responsável" por si só. Dito isto, "meu voto", conforme o raciocínio acima, é tentar você mesmo primeiro e, se você gosta da abordagem, faça isso.
fonte