Tutoriais

https://vvcestudio.com.br/pt/tutorial/dotnet/xunit/
menu

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:

Criar solução
x
$ dotnet new sln -n testes_calculadora_xunit

(Cria apenas o arquivo solução .sln)

Criando um projeto

Adicionar uma biblioteca de classes a solução:

Criar projeto
x
$ dotnet new classlib -n calculos

(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:

calculadora.cs
x
public class 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:

calculadora.cs
x
$ dotnet sln teste-unitario-com-xunit.sln add calculos/calculos.csproj

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:

criar projeto XUnit
x
$ dotnet new xunit -n calculos.tests

Adicione este projeto na solução:

Add projeto a solução
x
$ dotnet sln testes_calculadora_xunit.sln add calculos.tests/calculos.tests.csproj

E adicione nele a referência da biblioteca de cálculos nele:

Add projeto a solução
x
$ dotnet add calculos.tests/calculos.tests.csproj reference calculos/calculos.csproj

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:
CalculadoraTest.cs
x
public class CalculadoraTest
{
[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:

Roar testes
x
$ dotnet test