... | ... | @@ -116,14 +116,13 @@ A equipe adotou a convenção de usar nomes em inglês para variáveis, funçõe |
|
|
|
|
|
## 🧪 Testes unitários
|
|
|
### Back-end
|
|
|
Os testes automatizados são parte essencial da garantia de qualidade do projeto. Eles asseguram que as funcionalidades do sistema se comportem conforme o esperado, mesmo após novas implementações ou refatorações.
|
|
|
Para isso, o projeto utiliza o Jest, um framework de testes completo para JavaScript/TypeScript amplamente adotado no ecossistema NestJS.
|
|
|
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 (Executor de Testes):** **:** O Jest é o programa que ativamente procura por arquivos de teste em nosso projeto (os arquivos `.spec.ts`) e os executa um por um
|
|
|
- **Assertion Library (Biblioteca de Asserção):** permite escrever vO Jest nos dá a ferramenta principal da investigação: a função `expect()`. Com ela, fazemos "asserções" (afirmações) sobre o nosso código. Por exemplo: `expect(soma(2, 2)).toBe(4);` se traduz para: "Eu afirmo que o resultado de `soma(2, 2)` deve ser `4`"
|
|
|
- **Mocking Library (Biblioteca de Simulação):** Em um caso complexo, o detetive precisa isolar a cena do crime. O Jest nos permite "mocar" (do inglês *mock*, que significa simular ou imitar) as dependências. Se o `AreasService` depende do `AreasRepository` para falar com o banco de dados, podemos dizer ao Jest: "Para este teste, finja que o `AreasRepository` existe e, quando o método `findById` for chamado, retorne este objeto falso aqui". Isso isola o teste apenas para a lógica do `AreasService`
|
|
|
- **Relatórios (Reporting):** 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:
|
... | ... | |