-
Notifications
You must be signed in to change notification settings - Fork 0
04_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.
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
-
Vá para a pasta EntityCodeFirst
-
Adicione a interface IRepositorioComum. Arquivo final.
-
Adicione a interface IRepositorioVideos. Arquivo final.
- Vamos atualizar o arquivo RepositorioComum.cs, para adicionar a interface. DIFF alterações Arquivo final.
- Vamos atualizar o arquivo RepositorioVideos.cs, para adicionar a interface. DIFF alterações Arquivo final.
- No projeto de API
- Vamos atualizar as injeções do repositório no arquivo Startup.cs. DIFF alterações
- No projeto de BLL, vamos atualizar os serviços
- Atualizar o CategoriaService. DIFF alterações
- Atualizar o VideoService. DIFF alterações
Branch final topicos/t5/p0. Para ver as alterações completas DIFF das alterações.
Vamos começar criando o projeto de testes.
- 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.
- Através do NuGet, no projeto AcessoDados.Tests, instale os seguintes pacotes:
- Microsoft.AspNetCore.Mvc.Testing versão 2.1.3
- Moq
- Adicione a referência ao projeto AcessoDados.API no projeto AcessoDados.Tests.
- Clique no projeto _AcessoDados.Tests, com o botão direto, escolha a opção Unload Project.
- 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.
Vamos criar nosso primeiros testes de integração.
- Adicione a pasta Integration.
- Dentro da pasta Integration, adicione a classe CategoriasControllerTests. Arquivo final.
- 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.
- Adicione a pasta Unit.
- Dentro da pasta Unit, adicione a classe BLLServiceBase. Arquivo final.
- Dentro da pasta Unit, adicione a classe CategoriaServiceTests. Arquivo final.
- Dentro da pasta Unit, adicione a classe VideoServiceTests. Arquivo final.
- Adicione o projeto AcessoDados.BLL como referência.
- 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.
Agora vamos fazer as correções necessárias.
- Vamos atualizar o arquivo RepositorioComum.cs, para adicionar um novo método. DIFF alterações Arquivo final.
- Vamos atualizar o arquivo RepositorioVideos.cs, para fazer as validações necessárias. DIFF alterações Arquivo final.
- Vamos atualizar o arquivo VideoService.cs, para fazer as validações necessárias DIFF alterações Arquivo final.
- Vamos atualizar o arquivo VideosController.cs, para fazer as validações necessárias.DIFF alterações Arquivo final.
- 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.