Pergunta

Acabei de descobrir que estava fazendo o dobro do número de testes que deveria.Descobri isso quando um teste quebrou e tive duas falhas de teste idênticas.Mesmo teste, mesmo tudo.Fiquei bastante confuso, mas consegui restringi-lo a uma determinada classe de teste que era parcial.

O motivo de ser uma aula parcial foi que eu dividi uma aula de teste em duas, só para torná-la um pouco mais limpa.A classe em teste tinha um determinado método que exigia uma longa série de testes e achei que seria mais limpo tê-los em um arquivo separado.Mas como havia um ou dois métodos auxiliares usados, imaginei que poderia simplesmente tornar a classe parcial para que ambos os arquivos ainda tivessem acesso a esses métodos.

A estrutura de teste é NUnit e os testes foram executados usando TestDriven.Net.Executei os testes dentro de um único método de teste (relatou dois testes aprovados em vez de um), na classe (obteve o dobro do número de testes aprovados) e em todo o projeto de teste.

Consegui corrigir o problema tornando as classes não parciais e apenas duplicando esses pequenos métodos auxiliares (pode movê-los para uma classe auxiliar separada ou algo mais tarde).

Agora...por que diabos isso está acontecendo?Achei que as classes parciais fossem compiladas em uma única classe?Este é um problema com classes parciais em geral, NUnit, Test-Driven.net ou algo completamente diferente?

Foi útil?

Solução

Você provavelmente colocou o [TestFixture] atributo em ambos os arquivos da classe parcial.Isto causará TestFixture será emitido duas vezes na definição da classe IL e o NUnit executará o mesmo código de teste duas vezes.Você só deve adicionar [TestFixture] em um dos arquivos da sua aula parcial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top