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 test
ounpm run test
. - Para rodar apenas um teste específico:
npm test -- <nome-do-arquivo>
.
- Comando:
Estrutura de Testes
test-utils.tsx
)
Arquivo Utilitário de Testes (O arquivo test-utils.tsx
configura ferramentas utilitárias e funcionalidades essenciais para a execução de testes.
customRender
Função 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
CssBaseline
para 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
introducao.test.tsx
)
Testando a Página de Introdução (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.
login.test.tsx
)
Testando a Página de Login (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.