Skip to content

04_testes

Douglas Fernandes edited this page Jul 27, 2020 · 15 revisions

Testes

Vamos criar alguns exemplos simples para a execução de Testes em projetos ASP.NET CORE.

Começamos este passo na branch topicos/t4/p4.

Passo a Passo 0 - Usando a Injeção de dependência

Antes de continuarmos, devemos abstrair nossas implementações para podemos simplificar nosso teste.

Vamos começar criando as classes de interface para os nossos repositórios

Criando interfaces

  1. Vá para a pasta EntityCodeFirst

  2. Adicione a interface IRepositorioComum. Arquivo final.

  3. Adicione a interface IRepositorioVideos. Arquivo final.

Atualizando os repositórios

  1. Vamos atualizar o arquivo RepositorioComum.cs, para adicionar a interface. DIFF alterações Arquivo final.
  2. Vamos atualizar o arquivo RepositorioVideos.cs, para adicionar a interface. DIFF alterações Arquivo final.

Atualizando a injeção de dependência

  1. No projeto de API
  • Vamos atualizar as injeções do repositório no arquivo Startup.cs. DIFF alterações
  1. No projeto de BLL, vamos atualizar os serviços

Branch final topicos/t5/p0. Para ver as alterações completas DIFF das alterações.

Passo a Passo 1 - Configuração do Projeto

Vamos começar criando o projeto de testes.

  1. Clique com o botão direito na solution, e escolha a opção ADD -> New Project
  • Na tela selecione .NET Core (Dentro de Visual C#), escolha a opção xUnit Test Project (.NET Core).
  • No Name: digite: AcessoDados.Tests.
  1. Através do NuGet, no projeto AcessoDados.Tests, instale os seguintes pacotes:
  • Microsoft.AspNetCore.Mvc.Testing versão 2.1.3
  • Moq
  1. Adicione a referência ao projeto AcessoDados.API no projeto AcessoDados.Tests.
  2. Clique no projeto _AcessoDados.Tests, com o botão direto, escolha a opção Unload Project.
  3. Clique no projeto _AcessoDados.Tests, com o botão direto, escolha a opção Edit AcessoDados.Tests.csproj
  • Mude a linha: <Project Sdk="Microsoft.NET.Sdk"> para <Project Sdk="Microsoft.NET.Sdk.Web">.
  • Adicione a linha> <PackageReference Include="Microsoft.AspNetCore.App" />, dentro da tag _ _
  • DIFF alterações Arquivo final.

Branch final topicos/t5/p1. Para ver as alterações completas DIFF das alterações.

Passo a Passo 2 - Criação de Testes de Integração

Vamos criar nosso primeiros testes de integração.

Projeto AcessoDados.Testes

  1. Adicione a pasta Integration.
  2. Dentro da pasta Integration, adicione a classe CategoriasControllerTests. Arquivo final.
  3. Dentro da pasta Integration, adicione a classe VideosControllerTests. Arquivo final.

Atenção verifique que existem testes que não são válidos, desta forma encontramos erros em nossa aplicação.

Branch final topicos/t5/p2. Para ver as alterações completas DIFF das alterações.

Passo a Passo 3 - Testando a BLL através de Testes Unitários

Projeto AcessoDados.Testes

  1. Adicione a pasta Unit.
  2. Dentro da pasta Unit, adicione a classe BLLServiceBase. Arquivo final.
  3. Dentro da pasta Unit, adicione a classe CategoriaServiceTests. Arquivo final.
  4. Dentro da pasta Unit, adicione a classe VideoServiceTests. Arquivo final.
  5. Adicione o projeto AcessoDados.BLL como referência.
  6. Adicione o projeto AcessoDados.DAL como referência.

Atenção verifique que existem testes que não são válidos, desta forma encontramos erros em nossa aplicação.

Branch final topicos/t5/p3. Para ver as alterações completas DIFF das alterações.

Passo a Passo 4 - TDD

Agora vamos fazer as correções necessárias.

Projeto AcessoDados.DAL

  1. Vamos atualizar o arquivo RepositorioComum.cs, para adicionar um novo método. DIFF alterações Arquivo final.
  2. Vamos atualizar o arquivo RepositorioVideos.cs, para fazer as validações necessárias. DIFF alterações Arquivo final.

Projeto AcessoDados.BLL

  1. Vamos atualizar o arquivo VideoService.cs, para fazer as validações necessárias DIFF alterações Arquivo final.

Projeto AcessoDados.API

  1. Vamos atualizar o arquivo VideosController.cs, para fazer as validações necessárias.DIFF alterações Arquivo final.

Projeto AcessoDados.Tests

  1. Vamos atualizar o arquivo VideoServiceTests.cs, para instanciar corretamente o repositório.DIFF alterações Arquivo final.

Agora todos os testes estão passando.

Branch final topicos/t5/p4. Para ver as alterações completas DIFF das alterações.

Clone this wiki locally