CF

Cleiton Fonseca29/12/2023 16:49
Compartilhe

Introdução a testes unitários em .NET

    Introdução

    Os testes unitários são uma forma de verificar o comportamento de um código isoladamente, para assegurar a qualidade do software, para realizar testes unitários em C# podemos utilizar a biblioteca xUnit, você pode conferir a documentação dela no link a seguir: https://xunit.net/docs/getting-started/netcore/cmdline.


    Criando o meu primeiro teste unitário


    Para facilitar a visualização vamos utilizar o exemplo dado na aula de testes unitários, após criar uma Solution e referenciar a Calculadora a Calculadora Testes, vamos criar o primeiro teste unitário.

    O teste vai validar o método somar:

    image

    Para isso, na classe CalculadoraTestes.cs vamos criar uma classe é um método para validar os dados obtidos.


    1. O [Fact] é o atributo que indica que é um método de teste.
    2. O método public void DeveSomar5Com10ERetornar15()indica o comportamento esperado do código.
    3. Para instanciar a classe utilizamos calc = new CalculadoraImp();
    4. Arrange é a preparação do ambiente de testes, no caso abaixo definimos as variáveis num1 recebendo o valor 5 e a num2 recebendo o valor 10.
    5. O Act é a funcionalidade que está sendo testado, no presente exemplo criamos a variável resultado para receber o resultado do método Somar.
    6. Assert é a verificação do resultado em si. No caso em análise passamos dois argumentos, o primeiro é o resultado esperado e o segundo o resultado do código Assert.Equal(15, resultado).

    Exemplos:

    image


    image


    Para rodar o teste devemos acessar a pasta CalculadoraTestes e executar o comando no terminal:

    dotnet test
    

    Resultado:

    image


    Testes parametrizados

    Os testes parametrizados permitem que você execute o mesmo teste com diferentes valores de entrada. O xUnit fornece o atributo Theory para marcar um teste como parametrizado, enquanto no teste unitário convencional o atributo utilizado é Fact. Vejamos os exemplos acima na forma de um teste parametrizado:

    image

    Note-se que nesse caso, não utilizamos o arrange no corpo do código, pois inserimos os dados anteriormente.

    Compartilhe
    Comentários (0)