Testes unitários com XUnit
Testes unitários ajudam a garantir a qualidade de uma aplicação.
Uma forma de garantir isso no C# é através da biblioteca xUnit.
Veja como como utilizá-la.
Conhecendo a biblioteca xUnit
O xUnit é uma biblioteca open source de testes unitários, que foi criada pelo mesmo criador da segunda versão do NUnit, James Newkirk.
Desta forma, ambas as bibliotecas possuem funcionalidades similares.
Criar uma Solução
Criar uma solução:
(Cria apenas o arquivo solução .sln)
Criando um projeto
Adicionar uma biblioteca de classes a solução:
(O parâmetro -n irá criar a pasta do projeto)
Este é um projeto de biblioteca de classes, que podem ser referenciados a partir de aplicativos .NET Core
Que conterá uma classe Calculadora:
{
public int Soma(int operador1, int operador2) => operador1 + operador2;
public int Subtracao(int operador1, int operador2) => operador1 - operador2;
public int Multiplicao(int operador1, int operador2) => operador1 * operador2;
public int Divisao(int dividento, int divisor) => dividento / divisor;
public (int quociente, int resto) RestoDivisao(int dividento, int divisor) => (dividento / divisor, dividento % divisor);
}
Adicione a referência deste projeto na solução:
Criando o projeto de teste
Um projeto de teste trata-se de uma biblioteca de classe que contenha a referência xunit.
Felizmente no .NET Core, há a opção de um template de projeto já com esta biblioteca adicionada.
Para criar um projeto de testes com xUnit utilize o comando abaixo:
Adicione este projeto na solução:
E adicione nele a referência da biblioteca de cálculos nele:
Pronto, agora podemos adicionar testes unitários na nossa aplicação.
Adicionando testes unitários
No projeto de teste criado, remova o arquivo UnitTest1.cs e adicione uma classe chamada CalculadoraTest, nela adicione o método abaixo:{
[Fact]
public void Soma_DeveRetornarOValorCorreto()
{
Calculadora c = new Calculadora(); // Instanciando Classe que será testada.
var resultado = c.Soma(10, 20);
//Verifica se o resultado é igual a 30
Assert.Equal(30, resultado); // O AreEqual estava dando erro.
}
}
Note que no código acima é utilizado o atributo [Fact] em cima do método de teste.
Isso indica que este é um método de teste.
É graças a ele que os tests runner sabem qual método deve ser chamado quando um teste é iniciado.
Rodar os testes
Este teste pode ser executado através do comando dotnet test, o Test Explorer do Visual Studio ou o xUnit Runner Console.
Com o teste definido, ele pode ser executado: