O que csharp-tunit faz?
Obtenha as melhores práticas para testes unitários com TUnit, incluindo testes orientados por dados.
Visão Geral
Esta skill fornece orientações para escrever testes unitários eficientes e limpos usando o framework TUnit no ecossistema .NET. O TUnit é um framework de testes moderno que oferece suporte nativo a testes paralelos, injeção de dependências e uma ampla gama de fontes de dados para testes orientados por dados.
Por que TUnit?
- Paralelização automática – Execução mais rápida dos testes.
- Suporte a testes orientados por dados – Use atributos como
[Arguments],[MethodDataSource]e[ClassDataSource]. - Injeção de dependências – Facilita a configuração de mocks e serviços.
- Sintaxe limpa – Menos boilerplate comparado a outros frameworks.
Configuração
dotnet add package TUnit
Verifique se seu projeto está usando .NET 6 ou superior.
Exemplos de Testes
Teste Simples
using TUnit;
public class MyTestClass
{
[Test]
public async Task MyTest()
{
var result = Add(2, 3);
await Assert.That(result).IsEqualTo(5);
}
private int Add(int a, int b) => a + b;
}
Teste Orientado por Dados com Atributos
[Test]
[Arguments(1, 2, 3)]
[Arguments(4, 5, 9)]
public async Task Add_ShouldReturnSum(int a, int b, int expected)
{
var result = Add(a, b);
await Assert.That(result).IsEqualTo(expected);
}
Fonte de Dados de Método
[Test]
[MethodDataSource(nameof(GetData))]
public async Task TestWithMethodSource(int a, int b, int expected)
{
var result = Add(a, b);
await Assert.That(result).IsEqualTo(expected);
}
public static IEnumerable<(int, int, int)> GetData()
{
yield return (1, 2, 3);
yield return (4, 5, 9);
}
Fonte de Dados de Classe
public class MyTestData
{
public static IEnumerable<(int, int, int)> Data()
{
yield return (1, 2, 3);
yield return (4, 5, 9);
}
}
[Test]
[ClassDataSource<MyTestData>]
public async Task TestWithClassSource(int a, int b, int expected)
{
var result = Add(a, b);
await Assert.That(result).IsEqualTo(expected);
}
Melhores Práticas
- Nomeie os testes de forma descritiva – Use nomes que expliquem o comportamento esperado.
- Mantenha os testes isolados – Cada teste deve ser independente.
- Use fontes de dados externas – Para conjuntos grandes de dados, prefira
MethodDataSourceouClassDataSource. - Aproveite a paralelização – Não use estado compartilhado entre testes.
- Organize em pastas/namespaces – Agrupe testes por funcionalidade.
Recursos Adicionais
Licença
Esta skill é fornecida apenas para fins educacionais. Consulte a licença do TUnit para uso comercial.