Compartilhar via


Testes no .NET

Este artigo apresenta 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 aplicativos .NET, como a CLI do .NET ou IDEs (Ambientes de Desenvolvimento Integrado).

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 de unidade

Um teste de unidade é um teste que exerce componentes ou métodos de software individuais, também conhecidos como uma "unidade de trabalho". Os testes de unidade devem testar apenas o código dentro do controle do desenvolvedor. Eles não testam questões de infraestrutura. As preocupações com a infraestrutura incluem interagir 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, pois exerce a capacidade de dois ou mais componentes de software de funcionarem juntos, também conhecidos 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. Geralmente, os testes de integração incluem preocupações de infraestrutura.

Testes de carga

Um teste de carga visa 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 de forma responsiva. Para obter mais informações sobre o teste de carga de aplicativos Web, consulte ASP.NET Teste de carga/estresse principal.

Considerações de teste

Tenha em mente que há práticas recomendadas para escrever testes. Por exemplo, falamos em TDD (Desenvolvimento Orientado por Testes) quando um teste de unidade é escrito antes do código que ele é destinado a verificar. TDD é como criar uma estrutura de tópicos para um livro antes de escrevê-lo. O teste de unidade ajuda os desenvolvedores a escrever um 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.

Testar plataformas

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 possa exibir os testes disponíveis no Gerenciador de Testes. O sistema de teste retorna ao IDE com os testes encontrados. Comunicação semelhante ocorre para execução de teste.

O VSTest foi usado por 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 é criada com base na plataforma de teste. Ele define o conjunto de atributos e APIs que estão disponíveis para você, como um autor de teste. Ele 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 todos os idiomas do .NET. Ele é extensível e funciona com a CLI do .NET, o Visual Studio, o Visual Studio Code e o Rider. Ele dá suporte ao VSTest e ao Microsoft.Testing.Platform.

Para obter mais informações, consulte os seguintes recursos:

NUnit

NUnit é uma estrutura de teste de unidade para todos os idiomas do .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 dá suporte ao VSTest e ao Microsoft.Testing.Platform.

Para obter mais informações, consulte os seguintes recursos:

TUnit

O TUnit é totalmente baseado em Microsoft.Testing.Platform e não dá suporte ao VSTest. Para obter mais informações, consulte a documentação do TUnit.

xUnit.net

xUnit.net é uma ferramenta de teste de unidade gratuita, de software livre e focada na comunidade para .NET. O inventor original da NUnit v2 escreveu xUnit.net. xUnit.net é a tecnologia mais recente para aplicativos .NET de teste de unidade. Ele também funciona com ReSharper, CodeRush e TestDriven.NET. xUnit.net é um projeto do .NET Foundation e opera sob seu código de conduta. Ele dá suporte ao VSTest e ao Microsoft.Testing.Platform

Para obter mais informações, consulte os seguintes recursos:

Executando testes

CLI do .NET

Você pode executar testes de unidade de todos os projetos de teste em uma solução usando a CLI do .NET e o comando 'dotnet test'. A CLI do .NET expõe a maior parte das funcionalidades que as IDEs (Ambientes de Desenvolvimento Integrado) disponibilizam por meio das interfaces de usuário. A CLI do .NET é multiplataforma e está disponível para uso como parte de pipelines de integração e entrega contínuas. A CLI do .NET é usada com processos com script para automatizar tarefas comuns.

IDE

Se você estiver usando o Visual Studio, o Visual Studio Code ou o Rider, há interfaces gráficas do usuário 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.

Consulte também

Para obter mais informações, consulte os seguintes artigos: