Começando com testes de unidade.

Nesse artigo vou falar sobre, testes de unidade no .NET usando o XUnit, confesso que tenho pouco tempo de experiência em testes automatizados, mas, que é de se apaixonar isso é.

Felipe Castro
4 min readJan 23, 2021

Para começar a apresentar os nossos testes vamos primeiro criar um projeto, nesse caso, eu criei uma pasta onde vou colocar o projeto. Eu começo criando uma solution para fazer a organização lógica do nosso projeto, após crio um projeto webapi e adiciono na solution. Vamos aos comandos, para criar uma solution digite no terminal ou no cmd dotnet new sln -n nomedasolution”, agora vamos criar o projeto “dotnet new webapi -n nomeprojeto” , para adicionar o projeto na solution “dotnet sln add caminho_do_projeto” no final você terá algo parecido com a imagem a baixo:

Resultado final.

Tendo isso pronto precisamos criar algo para testar, vou criar uma classe que vai representar uma entidade do nosso sistema, essa entidade será o carro e vou fazer um construtor e um método para validar a criação de um objeto carro.

Classe Carro.

Tendo feito isso temos o que testar, claro que em um mundo ideal não seria somente isso, mas, aqui é apenas um texto sobre como criar testes de unidade, vai ser tudo simples. Com isso pronto podemos criar o nosso projeto de teste, então no terminal na raiz do projeto é só digitar “dotnet new xunit -n blog.test” e depois adicionei na solução digitando “dotnet sln add blog.test/”

Projeto.

Vamos criar o nosso primeiro teste, no projeto de teste vamos criar uma classe com o nome de “CarroTest.cs” e também importar para o projeto de test uma referência do projeto api, é só no terminal ir à pasta do projeto test e digitar “dotnet add reference ../blog.api/” e agora vamos à imagem do método.

Class CarroTest.

Quando criamos um projeto xunit do dotnet ele já importa para o projeto o pacote xunit, mas você pode fazer isso não mão se quiser, a primeira coisa que temos que fazer nessa classe é as importações, no caso eu importe o using Xunit; e o using blog.api; depois criamos um método para o teste e decoramos ele com a notação [Fact] essa é uma notação do pacote xunit e indica que esse método é um teste, sem essa notação a mágica não acontece. Outro fato importante é sobre o nome do método, é uma boa prática você falar o que quer fazer e o resultado esperado dele, assim, a leitura do método fica bem mais fácil, beleza? Vamos então ao corpo do método, que nesse nosso exemplo eu só criei uma instância da nossa classe “Carro.cs” da forma que foi feita eu estou esperando que a instância seja criada e mais nada aconteça, se isso for verdade o teste vai retornar um lindo passed.

Para executar o teste vai à raiz do projeto e digite “dotnet test” se você criou a solution e adicionou o projeto nela o seu teste vai rodar, caso não, digite isso no terminal na pasta do projeto de teste.

Tem um teste a mais. rsrsrsr

Uma boa prática é fazer o teste primeiro dar erro propositalmente, assim você garante que tudo está funcionando.

Vamos criar um segundo teste que é para verificar se o nosso método de validação está funcionando, nesse caso ficaria algo assim:

Segundo teste.

Aqui como não esperamos que tudo dê certo, e sim que estoure uma exceção, então precisamos dizer isso ao xunit, e para isso usamos a class Assert do xunit e o método Throws, esse método tem sobrecargas, a que vamos usar temos que expressar o tipo do retorno do método, pois é um método genérico, e uma função com o teste.

Agora é só rodar o teste, o que foi mostrado aqui é muito simples, os testes podem ser melhor elaborados, mas para fins didáticos acredito que esse é um bom começo.

--

--