Como escrever testes de unidade em C# para melhor qualidade de código

Como Escrever Testes De Unidade Em C Para Melhor Qualidade De Codigo



Quando a maioria de nós está começando como desenvolvedor, dificilmente pensamos ou dedicamos muito tempo a testes unitários. No entanto, quando você entra em um ambiente de repositório mais complexo e compartilhado, torna-se cada vez mais essencial testar o código antes de implantá-lo na produção.

Portanto, é essencial obter os fundamentos do teste unitário no início dos estágios de desenvolvimento para evitar a curva de aprendizado ao lidar com bases de código extensas.

Neste tutorial, apresentaremos a estrutura de testes de unidade usando C# e a biblioteca de testes MSTest. Construiremos um aplicativo básico que permitirá que você aprenda como criar testes unitários, como executá-los e como interpretar os resultados de uma falha ou sucesso de um teste.







Ambiente de teste

Vamos começar discutindo a solução de teste e como configurar nossa aplicação básica.



Para seguir e replicar o aplicativo neste tutorial, certifique-se de ter o seguinte:



  1. Visual Studio instalado
  2. Ferramentas .NET e C# configuradas em sua máquina

Crie um aplicativo

Em seguida, abra o Visual Studio e crie uma nova solução. Para este tutorial, construiremos um aplicativo de calculadora básico. Você pode dar ao aplicativo qualquer nome que desejar.





Em seguida, crie um novo projeto e selecione o tipo de projeto como MSTest Test Project e dê a ele qualquer nome desejável.



Certifique-se de selecionar “Adicionar à solução” e escolha o aplicativo criado anteriormente.

Você deve ter o aplicativo principal e o projeto de teste de unidade conforme mostrado no gerenciador de soluções.

Escreva o código para o aplicativo Calculadora

A próxima etapa é escrever o código do nosso aplicativo de calculadora. Podemos fazer isso no arquivo “program.cs” do CalcApp.

Como estamos procurando funcionalidades básicas, podemos adicionar o código-fonte da seguinte forma:

Calculadora de classe pública
{
público dobro Adicionar ( dobro a , dobro b )
{
retornar a + b ;
}

público dobro Subtrair ( dobro a , dobro b )
{
retornar a - b ;
}

público dobro Multiplicar ( dobro a , dobro b )
{
retornar a * b ;
}

público dobro Dividir ( dobro a , dobro b )
{
se ( b == 0 )
lançar nova DivideByZeroException ( ) ;
retornar a / b ;
}
}

Como você pode imaginar, o código anterior cria um aplicativo de calculadora que pode executar aplicações aritméticas básicas.

Escreva os testes de unidade

Quando terminarmos, podemos escrever os testes unitários para a classe “Calculadora”. Neste caso, basta escrever os testes no arquivo “UnitTest” do projeto da seguinte forma:

usando o sistema ;

namespace CalcApp
{
Calculadora de classe pública
{
público dobro Adicionar ( dobro a , dobro b )
{
retornar a + b ;
}

público dobro Subtrair ( dobro a , dobro b )
{
retornar a - b ;
}

público dobro Multiplicar ( dobro a , dobro b )
{
retornar a * b ;
}

público dobro Dividir ( dobro a , dobro b )
{
se ( b == 0 )
lançar nova DivideByZeroException ( ) ;
retornar a / b ;
}
}
}

namespace CalcTest
{
[ Classe de teste ]
Calculadora de classe públicaTestes
{
calculadora calculadora privada ;

[ TestInitialize ]
público vazio Configurar ( )
{
calculadora = nova calculadora ( ) ;
}

[ Método de teste ]
público vazio Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
foi o resultado = calculadora. Adicionar ( 5 , 5 ) ;
Afirmar. São iguais ( 10 , resultado ) ;
}

[ Método de teste ]
público vazio Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
foi o resultado = calculadora. Subtrair ( 10 , 5 ) ;
Afirmar. São iguais ( 5 , resultado ) ;
}

[ Método de teste ]
público vazio Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
foi o resultado = calculadora. Multiplicar ( 5 , 5 ) ;
Afirmar. São iguais ( 25 , resultado ) ;
}

[ Método de teste ]
[ Exceção esperada ( tipo de ( DivideByZeroException ) ) ]
público vazio Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
foi o resultado = calculadora. Dividir ( 5 , 0 ) ;
}

[ Método de teste ]
público vazio Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
foi o resultado = calculadora. Dividir ( 10 , 5 ) ;
Afirmar. São iguais ( 2 , resultado ) ;
}
}
}

Conclusão

Este é um tutorial básico que cobre os fundamentos do teste de unidade em C# usando a estrutura MSTest.