| Home | Escopo | Gerência | Processo | Mockups | Configuração | Arquitetura | DataBase | Infraestrutura | Testes | 
|---|
Documentação de Testes Unitários
Visão Geral
Os testes unitários são ferramentas poderosas que garantem que cada componente do front-end funcione conforme o esperado, isoladamente. Neste projeto, utilizamos os frameworks Jest e React Testing Library, integrados ao Vitest para compatibilidade e desempenho de Unity Tests em projetos com Next.js.
Imagem: execução automatizada de testes através da pipeline.
Benefícios
- 
Manutenção:
- Garantia de que mudanças no código não introduzam erros.
 
 - 
Confiabilidade:
- Aumento da confiança ao lançar novas funcionalidades.
 
 - 
Facilidade:
- Configuração simples com ferramentas amplamente utilizadas.
 
 
Ferramentas Utilizadas
- Jest: Framework principal de testes.
 - React Testing Library: Para testes de interface e interações.
 - Vitest: Para integração com o ambiente Next.js.
 - Testing Library User Event: Para simulação de ações do usuário.
 
Fluxo de Testes
- 
Escrevendo Testes:
- Criação de testes unitários para cada componente ou página, cobrindo cenários específicos.
 
 - 
Executando Testes:
- Comando: 
npm testounpm run test. - Para rodar apenas um teste específico: 
npm test -- <nome-do-arquivo>. 
 - Comando: 
 
Estrutura de Testes
Arquivo Utilitário de Testes (test-utils.tsx)
O arquivo test-utils.tsx configura ferramentas utilitárias e funcionalidades essenciais para a execução de testes.
Função customRender
O customRender é uma função utilitária que encapsula o método render fornecido pela React Testing Library. Ele é usado para adicionar configurações globais ou provedores necessários para o contexto da aplicação, como temas, gerenciamento de estado ou configurações específicas para testes. No contexto deste projeto, o customRender:
- Aplica o tema global do Material-UI a todos os componentes.
 - Adiciona o 
CssBaselinepara garantir estilos consistentes durante os testes. - Configura eventos do usuário com 
userEvent. 
Isso garante que todos os componentes sejam renderizados já com as configurações necessárias, proporcionando um ambiente de teste mais próximo ao real e eliminando a necessidade de repetir configurações em cada teste individual. O desenvolvimento desse método torna o processo mais eficiente e menos propenso a erros.
Exemplos de Testes
Testando a Página de Introdução (introducao.test.tsx)
Cenários Testados
- 
Renderização Inicial:
- Verifica se os principais componentes da página de introdução (texto, carrossel, botão) são renderizados corretamente.
 
 - 
Navegação e Habilitação do Botão:
- Garante que o botão "Finalizar" só é habilitado após o usuário navegar por todos os slides.
 
 
Testando a Página de Login (login.test.tsx)
Cenários Testados
- 
Renderização Inicial:
- Verifica se todos os elementos da página de login (inputs e botões) estão presentes.
 
 - 
Validação de Formulário:
- Valida que erros aparecem ao enviar o formulário com dados inválidos ou incompletos.
 
 
Melhorias Futuras
- 
Cobertura Ampliada:
- Expandir os testes para cenários edge case.
 
 - 
Testes de Integração:
- Garantir a integração correta entre componentes e páginas.
 
 - 
Automação de Pipelines:
- Adicionar os testes como parte do pipeline CI/CD.
 
 
