O que é esta biblioteca e para que serve
\n\nxUnit e NUnit são as duas bibliotecas mais populares para testes unitários (unit testing) no ecossistema .NET (C#, F#, VB.NET). Elas permitem que desenvolvedores escrevam testes automatizados que verificam a corretude de módulos individuais do programa (classes, métodos, funções).
\n\nPara que serve?
\n- \n
- Detecção de erros em estágios iniciais: Os testes são executados após cada alteração no código, permitindo identificar imediatamente regressões (quando um novo código quebra funcionalidades antigas). \n
- Refatoração sem medo: Você pode reescrever o código com confiança se tiver certeza de que os testes o cobrem. Se os testes passarem, tudo funciona como antes. \n
- Documentação em ação: Os testes mostram exatamente como um determinado método deve ser usado, quais parâmetros ele aceita e o que retorna. \n
- Integração CI/CD: Os testes são executados automaticamente em servidores de build (GitHub Actions, Azure DevOps, Jenkins) antes da implantação. \n
Diferença entre xUnit e NUnit:
\n- \n
- NUnit — biblioteca mais antiga (port do Java JUnit), usa atributos
[Test],[SetUp],[TearDown]. Possui um rico conjunto de atributos para parametrização. \n - xUnit — biblioteca mais moderna, criada pelo autor do NUnit. Usa o atributo
[Fact]para testes comuns e[Theory]para testes parametrizados. Diferencia-se por uma abordagem mais rigorosa ao isolamento de testes (cada teste é uma nova instância da classe). \n
Neste artigo, abordaremos ambas as bibliotecas, mas o foco principal será no xUnit, pois é a recomendada pela Microsoft para novos projetos.
\n\nInstalação
\n\nA instalação é feita através do gerenciador de pacotes NuGet. Você pode usar o Console do Gerenciador de Pacotes (Package Manager Console) ou a CLI do .NET.
\n\nInstalação do xUnit
\n// Via .NET CLI\ndotnet add package xunit\ndotnet add package xunit.runner.visualstudio\n\n// Via Package Manager Console\nInstall-Package xunit\nInstall-Package xunit.runner.visualstudio\n\nInstalação do NUnit
\n// Via .NET CLI\ndotnet add package NUnit\ndotnet add package NUnit3TestAdapter\n\n// Via Package Manager Console\nInstall-Package NUnit\nInstall-Package NUnit3TestAdapter\n\nImportante: Para executar os testes no Visual Studio ou Rider, também é necessário instalar um adaptador do executor de testes (por exemplo, xunit.runner.visualstudio ou NUnit3TestAdapter).
Início rápido com exemplo de código
\n\nSuponha que temos uma classe simples Calculator com o método Add. Vamos escrever testes para ela em xUnit e NUnit.
Classe a ser testada (Calculator.cs)
\npublic class Calculator\n{\n public int Add(int a, int b)\n {\n return a + b;\n }\n\n public int Divide(int a, int b)\n {\n if (b == 0)\n throw new DivideByZeroException("Não é possível dividir por zero!");\n return a / b;\n }\n}\n\nTeste em xUnit (CalculatorTests.cs)
\nusing Xunit;\n\npublic class CalculatorTests\n{\n [Fact]\n public void Add_ShouldReturnSum_WhenTwoPositiveNumbers()\n {\n // Arrange (Preparação)\n var calculator = new Calculator();\n int a = 5;\n int b = 3;\n\n // Act (Ação)\n int result = calculator.Add(a, b);\n\n // Assert (Verificação)\n Assert.Equal(8, result);\n }\n\n [Fact]\n public void Divide_ShouldThrowException_WhenDivideByZero()\n {\n var calculator = new Calculator();\n\n Assert.Throws<DivideByZeroException>(() => calculator.Divide(10, 0));\n }\n}\n\nTeste em NUnit (CalculatorTest
Também na biblioteca
Trabalhando com S3 e armazenamentos em nuvem em TypeScript: guia completo
Tokens JWT em Kotlin: geração, verificação e uso com io.jsonwebtoken
Rate limiting em C++: bibliotecas e ferramentas para controle de requisições
Cliente OAuth para C# (.NET): implementação de autorização através de serviços terceiros
MailKit para C# (.NET): guia completo com exemplos práticos