O xUnit é uma das principais bibliotecas de testes unitários do .NET.
1. Crie os projetos
dotnet new classlib -n Loja
dotnet new xunit -n Loja.Tests
dotnet add Loja.Tests reference Loja
2. Classe a ser testada
public class Calculadora
{
public decimal Desconto(decimal valor, decimal percentual)
{
if (percentual < 0 || percentual > 100)
throw new ArgumentOutOfRangeException(nameof(percentual));
return valor - valor * percentual / 100m;
}
}
3. Escreva os testes
using Xunit;
public class CalculadoraTests
{
[Fact]
public void Desconto_10Porcento_Retorna90()
{
var calc = new Calculadora();
Assert.Equal(90m, calc.Desconto(100m, 10m));
}
[Theory]
[InlineData(100, 0, 100)]
[InlineData(200, 50, 100)]
public void Desconto_Varios(decimal valor, decimal pct, decimal esperado)
{
Assert.Equal(esperado, new Calculadora().Desconto(valor, pct));
}
[Fact]
public void Desconto_PercentualInvalido_Lanca()
{
Assert.Throws<ArgumentOutOfRangeException>(() => new Calculadora().Desconto(100m, 150m));
}
}
4. Execute
dotnet test
Boas práticas
- Padrão AAA: Arrange, Act, Assert.
- Um comportamento por teste, com nomes descritivos.
- Testes independentes e rápidos.
- Use mocks (Moq, NSubstitute) para dependências externas.
Veja também teste de software.
