Skip to content

CarlosBotelho42/boas-praticas-java-projeto_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sobre o projeto

Adopet é um site fictício de adoção de pets, com funcionalidades para cadastro de tutores, de abrigos e de pets, além de solicitação de adoções. Nesse repositório o projeto será uma API Rest em Java do Adopet.


Funcionalidades

  • Cadastro/atualização de tutores;
  • Cadastro de abrigos;
  • Cadastro de pets do abrigo;
  • Listagem de pets disponíveis para adoção;
  • Solicitação de adoção;
  • Aprovação/reprovação de adoção;

Layout

O projeto desse repositório é apenas a API Backend, mas existe um figma com o layout que está disponível neste link: Layout no Figma


Tecnologias

As seguintes tecnologias foram utilizadas no desenvolvimento da API Rest do projeto:


Alterações

  • Utilizar o padrão DTO para representar os dados que chegam e saem na API;
  • Mover validações de uma entidade JPA para uma classe DTO;
  • Funcionalidades do padrão DTO e as suas vantagens;
  • Testar uma classe que possui dependências;
  • Declarar mocks com a anotação @Mock do Mockito;
  • Indicar atributos a serem instanciados e ter suas dependências substituídas pelos mocks, via anotação @InjectMocks;
  • Manipular comportamentos de objetos mocks com o Mockito, via método BDDMockito.given;
  • Testar uma classe Service, que coordena o fluxo de regras de negócio na aplicação;
  • Utilizar o recurso de ArgumentCaptor, do Mockito, para recuperar parâmetros em mocks;
  • Utilizar um spy no Mockito e sua diferença em relação a um mock;
  • Escrever testes automatizados de uma classe Controller utilizando o Spring;
  • Simular requisições na API com o uso da classe MockMvc do Spring;
  • Verificar os retornos da API nos testes automatizados.

About

Projeto para melhorar as boas praticas em uma api que utiliza SpringBoot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages