... | ... | @@ -113,26 +113,26 @@ Os testes automatizados são parte essencial da garantia de qualidade do projeto |
|
|
Para isso, o projeto utiliza o Jest, um framework de testes completo para JavaScript/TypeScript amplamente adotado no ecossistema NestJS.
|
|
|
O Jest atua como o executor e verificador dos testes. Ele oferece um ambiente integrado que combina:
|
|
|
|
|
|
* **Test Runner:** executa automaticamente todos os arquivos de teste do projeto (.spec.ts e .e2e-spec.ts)
|
|
|
* **Assertion Library:** permite escrever verificações claras com a função expect(), usada para comparar o resultado obtido com o resultado esperado
|
|
|
* **Mocking Library:** possibilita simular dependências externas, como repositórios ou serviços, isolando a lógica da unidade testada
|
|
|
* **Relatórios:** exibe no terminal um resumo dos testes, indicando quais passaram (PASS) e quais falharam (FAIL)
|
|
|
- **Test Runner:** executa automaticamente todos os arquivos de teste do projeto (.spec.ts e .e2e-spec.ts)
|
|
|
- **Assertion Library:** permite escrever verificações claras com a função expect(), usada para comparar o resultado obtido com o resultado esperado
|
|
|
- **Mocking Library:** possibilita simular dependências externas, como repositórios ou serviços, isolando a lógica da unidade testada
|
|
|
- **Relatórios:** exibe no terminal um resumo dos testes, indicando quais passaram (PASS) e quais falharam (FAIL)
|
|
|
|
|
|
### Estrutura e convenções
|
|
|
Os arquivos de teste seguem um padrão para que o Jest os identifique automaticamente:
|
|
|
* ** *.spec.ts:** testes unitários de uma funcionalidade específica, como areas.service.spec.ts
|
|
|
* ** *.e2e-spec.ts:** testes ponta-a-ponta (End-to-End), que verificam o comportamento da aplicação completa através de requisições HTTP reais.
|
|
|
- *.spec.ts: testes unitários de uma funcionalidade específica, como areas.service.spec.ts
|
|
|
- *.e2e-spec.ts: testes ponta-a-ponta (End-to-End), que verificam o comportamento da aplicação completa através de requisições HTTP reais.
|
|
|
|
|
|
O sufixo _.spec_ vem de Specification, reforçando a ideia de que cada teste documenta o comportamento esperado do código, e não apenas o valida.
|
|
|
|
|
|
|
|
|
### Tipos de teste
|
|
|
* Testes Unitários
|
|
|
- Testes Unitários
|
|
|
|
|
|
Os testes unitários garantem que partes isoladas do sistema (como services e controllers) funcionem corretamente.
|
|
|
Usando o módulo de testes do NestJS (@nestjs/testing), é possível injetar dependências simuladas (mocks) e validar apenas a lógica da unidade sob teste, sem interação real com o banco de dados ou outros módulos.
|
|
|
|
|
|
* Testes End-to-End (E2E)
|
|
|
- Testes End-to-End (E2E)
|
|
|
|
|
|
Os testes E2E verificam o fluxo completo da aplicação, simulando o uso real do sistema.
|
|
|
Para isso, o Jest sobe uma instância da aplicação em memória e utiliza a biblioteca supertest para enviar requisições HTTP (como GET /areas ou POST /producers), validando o código de status e o corpo da resposta.
|
... | ... | @@ -144,8 +144,8 @@ Os testes são executados com o comando: |
|
|
**npm test**
|
|
|
|
|
|
Esse comando faz com que o Jest:
|
|
|
* Localize todos os arquivos *.spec.ts e *.e2e-spec.ts no projeto
|
|
|
* Execute cada caso de teste de forma isolada
|
|
|
* Gere um relatório no terminal com os resultados, tempos de execução e possíveis erros
|
|
|
- Localize todos os arquivos *.spec.ts e *.e2e-spec.ts no projeto
|
|
|
- Execute cada caso de teste de forma isolada
|
|
|
- Gere um relatório no terminal com os resultados, tempos de execução e possíveis erros
|
|
|
|
|
|
|