Skip to content

Plano de Testes

Luiz Carlos Oliveira Maciel edited this page Jun 16, 2025 · 2 revisions

Plano de Testes Unitários

Introdução

Este documento apresenta o plano de testes unitários para as principais funcionalidades da aplicação NestJS, com foco nas entidades Anamnesis, Screenings, PlansEducation, Students, Levels e Phases. Os testes foram desenvolvidos utilizando o framework Jest, seguindo as melhores práticas para garantir a cobertura e a robustez do código.

Estrutura dos Testes

Para cada entidade, foram criados testes unitários para o Controller, Service e Module, simulando o comportamento de cada componente de forma isolada e garantindo a correta interação entre eles.

Mocking de Dependências

Para isolar as unidades de teste, o PrismaService foi mockado em todos os testes de Service e Controller, garantindo que as operações de banco de dados fossem simuladas e não dependessem de uma conexão real com o banco de dados. No caso dos testes de Module, o PrismaService também foi sobrescrito para evitar a inicialização real.

Detalhamento dos Testes por Entidade

1. Anamnesis

AnamnesisService (src/anamnesis/anamnesis.service.spec.ts)

  • create: Testa a criação de uma nova anamnese e a atualização da fase do usuário associado.
  • findAll: Verifica se o serviço retorna uma lista de todas as anamneses.
  • findOne: Testa a busca de uma anamnese específica por e-mail.

AnamnesisController (src/anamnesis/anamnesis.controller.spec.ts)

  • create: Testa a chamada ao método create do serviço e o retorno correto.
  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista.
  • findOne: Testa a chamada ao método findOne do serviço com um e-mail e o retorno da anamnese.

AnamnesisModule (src/anamnesis/anamnesis.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se AnamnesisController e AnamnesisService são definidos dentro do módulo.

2. Screenings

ScreeningsService (src/screenings/screenings.service.spec.ts)

  • create: Testa a criação de um novo screening.
  • findAll: Verifica se o serviço retorna uma lista de todos os screenings.
  • findOne: Testa a busca de um screening específico por e-mail.

ScreeningsController (src/screenings/screenings.controller.spec.ts)

  • create: Testa a chamada ao método create do serviço e o retorno correto.
  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista.
  • findOne: Testa a chamada ao método findOne do serviço com um e-mail e o retorno do screening.

ScreeningsModule (src/screenings/screenings.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se ScreeningsController e ScreeningsService são definidos dentro do módulo.

3. PlansEducation

PlansEducationService (src/plans-education/plans-education.service.spec.ts)

  • create: Testa a criação de um novo plano de educação.
  • findAll: Verifica se o serviço retorna uma lista de todos os planos de educação.
  • findOne: Testa a busca de um plano de educação específico por e-mail, incluindo:
    • Retorno para o mesmo estudante.
    • Retorno para um profissional visualizando outro perfil.
    • Lançamento de ForbiddenException quando um estudante tenta visualizar o perfil de outro estudante.

PlansEducationController (src/plans-education/plans-education.controller.spec.ts)

  • create: Testa a chamada ao método create do serviço e o retorno correto.
  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista.
  • findOne: Testa a chamada ao método findOne do serviço com um e-mail e um objeto de requisição, e o retorno do plano de educação.

PlansEducationModule (src/plans-education/plans-education.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se PlansEducationController e PlansEducationService são definidos dentro do módulo.

4. Students

StudentsService (src/students/students.service.spec.ts)

  • findAll: Verifica se o serviço retorna uma lista de todos os usuários com id_level igual a ALUNO_ESTUDANTE.

StudentsController (src/students/students.controller.spec.ts)

  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista de estudantes.

StudentsModule (src/students/students.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se StudentsController e StudentsService são definidos dentro do módulo.

5. Levels

LevelsService (src/levels/levels.service.spec.ts)

  • create: Testa a criação de um novo nível de acesso.
  • findAll: Verifica se o serviço retorna uma lista de todos os níveis de acesso.
  • findOne: Testa a busca de um nível de acesso específico por ID.
  • update: Testa a atualização de um nível de acesso existente.
  • remove: Testa a remoção de um nível de acesso.

LevelsController (src/levels/levels.controller.spec.ts)

  • create: Testa a chamada ao método create do serviço e o retorno correto.
  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista.
  • findOne: Testa a chamada ao método findOne do serviço com um ID e o retorno do nível.
  • update: Testa a chamada ao método update do serviço com um ID e um DTO de atualização, e o retorno do nível atualizado.
  • remove: Testa a chamada ao método remove do serviço com um ID e o retorno do nível removido.

LevelsModule (src/levels/levels.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se LevelsController e LevelsService são definidos dentro do módulo.

6. Phases

PhasesService (src/phases/phases.service.spec.ts)

  • create: Testa a criação de uma nova fase.
  • findAll: Verifica se o serviço retorna uma lista de todas as fases.
  • findOne: Testa a busca de uma fase específica por ID.
  • update: Testa a atualização de uma fase existente.
  • remove: Testa a remoção de uma fase.

PhasesController (src/phases/phases.controller.spec.ts)

  • create: Testa a chamada ao método create do serviço e o retorno correto.
  • findAll: Verifica a chamada ao método findAll do serviço e o retorno da lista.
  • findOne: Testa a chamada ao método findOne do serviço com um ID e o retorno do nível.
  • update: Testa a chamada ao método update do serviço com um ID e um DTO de atualização, e o retorno do nível atualizado.
  • remove: Testa a chamada ao método remove do serviço com um ID e o retorno do nível removido.

PhasesModule (src/phases/phases.module.spec.ts)

  • Verifica se o módulo é definido corretamente.
  • Confirma se PhasesController e PhasesService são definidos dentro do módulo.

Considerações Finais

Este plano de testes unitários abrange as principais funcionalidades das entidades mencionadas, garantindo que cada componente da aplicação se comporte conforme o esperado. A utilização de mocks para o PrismaService permite que os testes sejam rápidos e isolados, facilitando a detecção de regressões e a manutenção do código.

Clone this wiki locally