Este projeto é uma demonstração completa e prática de como aplicar o TDD (Test-Driven Development) no mundo real usando o ecossistema Spring Boot. A aplicação é uma API REST de Gerenciamento de Usuários, construída inteiramente guiada por testes.
Ciclo Red-Green-Refactor: A base do TDD. Escreva um teste que falha (Red), faça o código passar de qualquer forma (Green) e então melhore o código (Refactor). Padrão AAA (Arrange-Act-Assert): Estruturação padronizada e legível para escrita de testes. Testes Unitários: Validação de regras de negócio isoladas usando Mockito. Testes de Integração: Validação de interação com o banco de dados (JPA/H2) de forma real. Testes de Controller: Validação dos endpoints HTTP (status code, JSON de requisição/resposta) usando MockMvc. Uso Avançado de Mocks: Comportamento simulado com when(), thenReturn(), verificação de interações com verify() e never().
Java 17 (Records, var, etc) Spring Boot 3.2.x (Web, Data JPA, Validation) JUnit 5 (Framework de testes) Mockito (Mocking de dependências) H2 Database (Banco em memória para testes de integração) Lombok (Redução de boilerplate) Maven (Gerenciador de dependências)
Método URL Descrição Status Code POST /api/v1/users Cria um novo usuário 201 (Created) / 409 (Conflict) GET /api/v1/users Lista todos os usuários 200 (Ok) GET /api/v1/users/{id} Busca usuário por ID 200 (Ok) / 404 (Not Found)
Exemplo de JSON para o POST (criação):
json
{ "name": "João Dev", "email": "joao@exemplo.com" }
Desenvolvido por João Victor