Testes no .NET
Este artigo introduz o conceito de teste e ilustra como diferentes tipos de testes podem ser usados para validar o código. Várias ferramentas estão disponíveis para testar aplicações .NET, como o .NET CLI ou Ambientes de Desenvolvimento Integrado (IDEs).
Tipos de teste
Os testes automatizados são uma ótima maneira de garantir que o código do aplicativo faça o que seus autores pretendem. Este artigo aborda testes de unidade, testes de integração e testes de carga.
Testes unitários
Um teste de unidade é um teste que exercita componentes ou métodos de software individuais, também conhecidos como uma "unidade de trabalho". Os testes de unidade só devem testar o código dentro do controlo do desenvolvedor. Eles não testam questões de infraestrutura. As preocupações com a infraestrutura incluem a interação com bancos de dados, sistemas de arquivos e recursos de rede.
Para obter mais informações sobre como criar testes de unidade, consulte Ferramentas de teste.
Testes de integração
Um teste de integração difere de um teste de unidade porque exerce a capacidade de dois ou mais componentes de software funcionarem juntos, também conhecida como sua "integração". Esses testes operam em um espectro mais amplo do sistema em teste, enquanto os testes de unidade se concentram em componentes individuais. Muitas vezes, os testes de integração incluem preocupações com a infraestrutura.
Ensaios de carga
Um teste de carga tem como objetivo determinar se um sistema pode ou não lidar com uma carga especificada. Por exemplo, o número de usuários simultâneos usando um aplicativo e a capacidade do aplicativo de lidar com interações responsivamente. Para obter mais informações sobre o teste de carga de aplicativos Web, consulte ASP.NET Core load/stress testing.
Considerações sobre o teste
Tenha em mente que existem práticas recomendadas para testes de redação. Por exemplo, de Desenvolvimento Controlado por Teste (TDD) é quando você escreve um teste de unidade antes do código que ele deve verificar. TDD é como criar um esboço para um livro antes de escrevê-lo. O teste de unidade ajuda os desenvolvedores a escrever código mais simples, legível e eficiente.
Ferramentas de teste
Ao executar testes no .NET, há dois componentes envolvidos: a plataforma de teste e a estrutura de teste.
Plataformas de teste
A plataforma de teste é o mecanismo que executa os testes e atua como um canal de comunicação com IDEs. Por exemplo, o Visual Studio pode enviar uma solicitação de descoberta para a plataforma de teste para que ele possa exibir os testes disponíveis no Gerenciador de Testes. A plataforma de testes devolve ao IDE os testes que encontrou. Comunicação semelhante acontece para a execução do teste.
O VSTest tem sido usado há muitos anos no .NET e foi a única plataforma de teste no ecossistema. No início de 2024, a primeira versão estável de uma nova plataforma de teste, chamada Microsoft.Testing.Platform (MTP), foi lançada.
Estruturas de teste
A estrutura de teste é construída sobre a plataforma de teste. Ele define o conjunto de atributos e APIs que estão disponíveis para você, como um autor de teste. Geralmente é alimentado por um adaptador de teste, que atua como uma camada de comunicação entre a estrutura de teste e a plataforma de teste. As estruturas de teste populares são MSTest, NUnit, TUnit e xUnit.net.
MSTest
MSTest é a estrutura de teste da Microsoft para todas as linguagens .NET. É extensível e funciona com .NET CLI, Visual Studio, Visual Studio Code e Rider. Ele suporta VSTest e Microsoft.Testing.Platform.
Para obter mais informações, consulte os seguintes recursos:
- Suporte para Microsoft.Testing.Platform no MSTest (MSTest runner)
- Testes unitários com C#
- Testes unitários com F#
- Teste de unidade com Visual Basic
NUnit
NUnit é uma estrutura de teste de unidade para todas as linguagens .NET. Inicialmente, o NUnit foi portado do JUnit, e a versão de produção atual foi reescrita com muitos novos recursos e suporte para uma ampla gama de plataformas .NET. É um projeto do .NET Foundation. Ele suporta VSTest e Microsoft.Testing.Platform.
Para obter mais informações, consulte os seguintes recursos:
- Suporte a Microsoft.Testing.Platform no NUnit (NUnit runner)
- Testes unitários com C#
- Testes unitários com F#
- Teste de unidade com Visual Basic
TUnit
TUnit é totalmente construído sobre Microsoft.Testing.Platform e não suporta VSTest. Para obter mais informações, consulte a documentação do TUnit.
xUnit.net
xUnit.net é uma ferramenta de teste de unidade gratuita, de código aberto e focada na comunidade para .NET. O inventor original do NUnit v2 escreveu xUnit.net. xUnit.net é a tecnologia mais recente para testes de unidade de aplicativos .NET. Ele também funciona com ReSharper, CodeRush e TestDriven.NET. xUnit.net é um projeto da .NET Foundation e opera sob seu código de conduta. Ele suporta VSTest e Microsoft.Testing.Platform
Para obter mais informações, consulte os seguintes recursos:
- suporte a Microsoft.Testing.Platform no xUnit.net v3
- Testes unitários com C#
- Testes unitários com F#
- Teste de unidade com Visual Basic
Testes em execução
CLI do .NET
Você pode executar testes de unidade de todos os projetos de teste em uma solução usando o .NET CLI com o comando dotnet test. A CLI do .NET expõe a maioria das funcionalidades que ambientes de desenvolvimento integrado (IDEs) disponibilizam por meio de interfaces de utilizador. A interface de linha de comandos .NET é multiplataforma e está disponível para ser usada como parte de pipelines de integração e entrega contínuos. A CLI do .NET é usada com processos com script para automatizar tarefas comuns.
IDE
Quer esteja a utilizar o Visual Studio, o Visual Studio Code ou o Rider, existem interfaces gráficas de utilizador para testar a funcionalidade. Há mais recursos disponíveis para IDEs do que a CLI, por exemplo, Live Unit Testing. Para obter mais informações, consulte Incluindo e excluindo testes com o Visual Studio.
Ver também
Para obter mais informações, consulte os seguintes artigos: