Documentação dos Testes e Mocks - Felipe-builder/rest-conexa-challenger GitHub Wiki
Documentação de Testes
Esta documentação descreve os testes realizados nos repositórios da aplicação, utilizando a biblioteca com.github.javafaker para criação de mocks de dados.
1. UserRepositoryTest
1.1. Dados de Mock Utilizados
- MockUser: Classe responsável por gerar objetos User e UserDTO para os testes.
1.2. Testes Realizados
-
Salvar Usuário:
-
Método Testado: testGivenUserObject_whenSave_thenReturnSavedUser
-
Descrição: Verifica se é possível salvar um usuário no banco de dados.
-
Asserts Realizados:
- createdUser não é nulo.
- createdUser.getId() não é nulo.
-
-
Buscar Todos Usuários:
- Método Testado: testGivenUserList_whenFindAll_thenReturnUserList
- Descrição: Verifica se é possível recuperar uma lista de usuários do banco de dados.
- Asserts Realizados:
- userList não é nulo.
- userList não está vazio.
-
Buscar Usuário por ID:
- Método Testado: testGivenUserObject_whenFindByID_thenReturnUserObject
- Descrição: Verifica se é possível recuperar um usuário por seu ID no banco de dados.
- Asserts Realizados:
- userFound não é nulo.
- userFound.getId() é igual ao ID do usuário criado.
-
Buscar Usuário por E-mail:
- Método Testado: testGivenUserObject_whenFindByEmail_thenReturnUserObject
- Descrição: Verifica se é possível recuperar um usuário por seu e-mail no banco de dados.
- Asserts Realizados:
- userFound não é nulo.
- userFound.getId() é igual ao ID do usuário criado.
-
Buscar Usuário por CPF:
- Método Testado: testGivenUserObject_whenFindByCpf_thenReturnUserObject
- Descrição: Verifica se é possível recuperar um usuário por seu CPF no banco de dados.
- Asserts Realizados:
- userFound não é nulo.
- userFound.getId() é igual ao ID do usuário criado.
-
Atualizar Usuário:
- Método Testado: testGivenUserObject_whenUpdateUserReturnUpdateUserObject
- Descrição: Verifica se é possível atualizar um usuário no banco de dados.
- Asserts Realizados:
- updatedUser não é nulo.
- updatedUser.getFullName() é igual ao novo nome definido.
-
Excluir Usuário:
- Método Testado: testGivenUserObject_whenDelete_thenRemoveUser
- Descrição: Verifica se é possível excluir um usuário do banco de dados.
- Asserts Realizados:
- Após a exclusão, a busca por ID resulta em um Optional vazio.
-
Buscar Usuário por Nome e Especialidade:
- Método Testado: testGivenFullNameAndSpecialt_whenFindByFullNameAndSpecialty_thenReturnUserObject
- Descrição: Verifica se é possível recuperar um usuário por nome e especialidade no banco de dados.
- Asserts Realizados:
- userFound não é nulo.
- userFound.getFullName() é igual ao nome do usuário criado.
2. UserServiceTest
2.1. Dados de Mock Utilizados
- MockUser: Classe responsável por gerar objetos User e UserDTO para os testes.
2.2. Testes Realizados
-
Salvar Usuário com E-mail Existente:
- Método Testado: testGivenExistingEmail_whenSaveUser_thenThrowsException
- Descrição: Verifica se o serviço lança uma exceção ao tentar salvar um usuário com e-mail existente.
- Asserts Realizados:
- Exceção BadRequestException é lançada com a mensagem esperada.
-
Buscar Todos Usuários:
- Método Testado: testGivenUsersList_whenFindAllUsers_thenReturnUsersList
- Descrição: Verifica se o serviço retorna uma lista válida de usuários.
- Asserts Realizados:
- usersDtoList não é nulo.
- O tamanho de usersDtoList é igual ao número de usuários criados.
-
Buscar Todos Usuários quando a Lista Está Vazia:
- Método Testado: testGivenEmptyUsersList_whenFindAllUsers_thenReturnEmptyUsersList
- Descrição: Verifica se o serviço retorna uma lista vazia quando não há usuários no banco de dados.
- Asserts Realizados:
- usersDtoList é uma lista vazia.
-
Buscar Usuário por ID:
- Método Testado: testGivenUsersId_whenFindById_thenReturnUserObject
- Descrição: Verifica se o serviço retorna um usuário válido por ID.
- Asserts Realizados:
- userFound não é nulo.
- userFound.getKey() é igual ao ID do usuário criado.
-
Atualizar Usuário:
- Método Testado: testGivenUserObject_whenUpdateUser_thenReturnUpdateUserObject
- Descrição: Verifica se o serviço atualiza corretamente um usuário.
- Asserts Realizados:
- userUpdated não é nulo.
- userUpdated.getFullName() é igual ao novo nome definido.
-
Excluir Usuário:
- Método Testado: testGivenUserID_whenDeleteUser_thenDoNothing
- Descrição: Verifica se o serviço exclui corretamente um usuário.
- Asserts Realizados:
- O método delete do repositório é chamado uma vez.
3. Mocks
3.1. MockUser
O MockUser é uma classe utilizada para criar objetos de usuário mockados para testes.
- Métodos Principais:
- mockEntity(): Retorna um usuário mockado.
- mockDTO(): Retorna um DTO de usuário mockado.
- mockEntityList(): Retorna uma lista de usuários mockados.
- mockDTOList(): Retorna uma lista de DTOs de usuários mockados.
- mockRandomEntityList(quantityUsers, withId): Retorna uma lista de usuários mockados com dados aleatórios.