Teste de unidade no .NET Core e no .NET StandardUnit testing in .NET Core and .NET Standard

O .NET Core torna mais fácil criar testes de unidade..NET Core makes it easy to create unit tests. Este artigo apresenta brevemente os testes de unidade e mostra como eles diferem de outros tipos de testes.This article introduces unit tests and illustrates how they differ from other kinds of tests. Os recursos vinculados na parte inferior da página mostram como adicionar um projeto de teste à sua solução.The linked resources near the bottom of the page show you how to add a test project to your solution. Depois de configurar seu projeto de teste, você poderá executar testes de unidade usando a linha de comando ou o Visual Studio.After you set up your test project, you will be able to run your unit tests using the command line or Visual Studio.

Se você estiver testando um projeto ASP.NET Core , consulte testes de integração no ASP.NET Core.If you're testing an ASP.NET Core project, see Integration tests in ASP.NET Core.

O .NET Core 2.0 e posterior dá suporte ao .NET Standard 2.0. Usamos as bibliotecas dele para demonstrar os testes de unidades..NET Core 2.0 and later supports .NET Standard 2.0, and we will use its libraries to demonstrate unit tests.

Você é capaz de usar modelos de projeto de teste de unidade internos do .NET Core 2.0 e posteriores para C#, F# e Visual Basic como um ponto de partida para seu projeto pessoal.You are able to use built-in .NET Core 2.0 and later unit test project templates for C#, F# and Visual Basic as a starting point for your personal project.

O que são testes de unidade?What are unit tests?

Testes automatizados são uma ótima maneira de garantir que um aplicativo de software faça o que seus autores pretendem.Having automated tests is a great way to ensure a software application does what its authors intend it to do. Existem vários tipos de testes para aplicativos de software.There are multiple types of tests for software applications. Isso inclui testes de integração, testes na Web, testes de carga e outros.These include integration tests, web tests, load tests, and others. Testes de unidade testam métodos e componentes de software individuais.Unit tests test individual software components and methods. Testes de unidade devem testar apenas o código dentro do controle do desenvolvedor.Unit tests should only test code within the developer’s control. Eles não devem testar questões de infraestrutura.They should not test infrastructure concerns. Questões de infraestrutura incluem bancos de dados, sistemas de arquivos e recursos de rede.Infrastructure concerns include databases, file systems, and network resources.

Além disso, tenha em mente que há práticas recomendadas para escrever testes.Also, keep in mind there are best practices for writing tests. Por exemplo, um TDD (Desenvolvimento Orientado por Testes) é quando um teste de unidade é escrito antes do código que ele é destinado a verificar.For example, Test Driven Development (TDD) is when a unit test is written before the code it is meant to check. O TDD é como criar um sumário para um livro antes de escrevê-lo.TDD is like creating an outline for a book before we write it. Ele destina-se a ajudar os desenvolvedores a escrever código mais legível, simples e eficiente.It is meant to help developers write simpler, more readable, and efficient code.

Observação

A equipe do ASP.NET segue estas convenções para ajudar os desenvolvedores a inventar bons nomes para os métodos e classes de teste.The ASP.NET team follows these conventions to help developers come up with good names for test classes and methods.

Tente não introduzir dependências na infraestrutura ao escrever testes de unidade.Try not to introduce dependencies on infrastructure when writing unit tests. Elas tornam os testes lentos e frágeis, devendo ser reservadas para testes de integração.These make the tests slow and brittle, and should be reserved for integration tests. Você pode evitar essas dependências no aplicativo seguindo o Princípio de Dependências Explícitas e usando a Injeção de Dependência.You can avoid these dependencies in your application by following the Explicit Dependencies Principle and using Dependency Injection. Você também pode manter seus testes de unidade em um projeto separado de seus testes de integração.You can also keep your unit tests in a separate project from your integration tests. Isso garante que seu projeto de teste de unidade não tenha dependências de pacotes de infraestrutura nem referências a eles.This ensures your unit test project doesn’t have references to or dependencies on infrastructure packages.

{1>{2>Próximas etapas<2}<1}Next steps

Mais informações sobre testes de unidade em projetos do .NET Core:More information on unit testing in .NET Core projects:

Projetos de testes de unidade do .NET Core são compatíveis com:.NET Core unit test projects are supported for:

Você também pode escolher entre:You can also choose between:

Você pode aprender mais nos guias passo a passo a seguir:You can learn more in the following walkthroughs:

Você pode saber mais nos seguintes artigos:You can learn more in the following articles: