Desenvolvimento de testes unitários em JUnit e Mockito para validar uma API REST de gerenciamento de estoques de cerveja.
Este sistema foi desenvolvido com o intuito de estudar a implementação de testes unitários com o JUnit e com o Mockito utilizando boas práticas do TDD com a API. Além disso, este foi utilizado como apresentação de projeto no BootCamp FULLSTACK da Everis, a partir da plataforma Digital Innovation One.
Nesta live coding, vamos aprender a testar, unitariamente, uma API REST para o gerenciamento de estoques de cerveja. Vamos desenvolver testes unitários para validar o nosso sistema de gerenciamento de estoques de cerveja, e também apresentar os principais conceitos e vantagens de criar testes unitários com JUnit e Mockito. Além disso, vamos também mostrar como desenvolver funcionalidades da nossa API através da prática do TDD.
O presente material conta com os seguintes itens:
- Desenvolvimento de testes unitários para validação de funcionalides básicas: criação, listagem, consulta por nome e exclusão de cervejas.
- TDD: apresentação e exemplo prático em 2 funcionaliades importantes: incremento e decremento do número de cervejas no estoque.
Para executar o projeto no terminal, digite o seguinte comando:
mvn spring-boot:run
Para executar a suíte de testes desenvolvida durante a live coding, basta executar o seguinte comando:
mvn clean test
Após executar o comando acima, basta apenas abrir o seguinte endereço e visualizar a execução do projeto:
http://localhost:8080/api/v1/beers
São necessários os seguintes pré-requisitos para a execução do projeto desenvolvido durante a aula:
- Java 14 ou versões superiores;
- Maven 3.6.3 ou versões superiores;
- Intellj IDEA Community Edition ou sua IDE favorita.
Abaixo, seguem links utilizados no decorrer do estudo:
- SDKMan! para gerenciamento e instalação do Java e Maven
- Referência do Intellij IDEA Community, para download
- Palheta de atalhos de comandos do Intellij
- Site oficial do Spring
- Site oficial JUnit 5
- Site oficial Mockito
- Site oficial Hamcrest
- Referências - testes em geral com o Spring Boot
- Referência para o padrão arquitetural REST
- Referência pirâmide de testes - Martin Fowler