... | ... | @@ -162,19 +162,13 @@ Os testes em **Jest** seguem uma estrutura organizada em blocos e verificações |
|
|
expect(() => func()).toThrow(); // espera que a função lance um erro
|
|
|
|
|
|
### Fluxo no projeto
|
|
|
- **Criação:**
|
|
|
Quando você cria uma nova funcionalidade, por exemplo, no `producers.service.ts`, você também cria um arquivo `producers.service.spec.ts` na pasta de test.
|
|
|
- **Criação:** quando você cria uma nova funcionalidade, por exemplo, no `producers.service.ts`, você também cria um arquivo `producers.service.spec.ts` na pasta de test.
|
|
|
|
|
|
- **Isolamento (Testes Unitários):**
|
|
|
Dentro do `.spec.ts`, usamos o `@nestjs/testing` para criar um "módulo de teste". Isso nos permite injetar "mocks" (versões falsas) das dependências. Não queremos testar o banco de dados aqui, apenas a lógica de negócio do `ProducersService`.
|
|
|
- **Isolamento (Testes Unitários):** dentro do `.spec.ts`, usamos o `@nestjs/testing` para criar um "módulo de teste". Isso nos permite injetar "mocks" (versões falsas) das dependências. Não queremos testar o banco de dados aqui, apenas a lógica de negócio do `ProducersService`.
|
|
|
|
|
|
- **Fluxo Completo (Testes E2E):**
|
|
|
Para os testes na pasta `/test` (`.e2e-spec.ts`), nós não usamos mocks. Nós subimos uma instância completa e real da nossa aplicação em memória. Então, usamos a biblioteca **supertest** para fazer chamadas HTTP de verdade (`GET /producers`, `POST /producers`) e usamos `expect` para verificar a resposta HTTP (status code, corpo da resposta, etc).
|
|
|
- **Fluxo Completo (Testes E2E):** para os testes na pasta `/test` (`.e2e-spec.ts`), nós não usamos mocks. Nós subimos uma instância completa e real da nossa aplicação em memória. Então, usamos a biblioteca **supertest** para fazer chamadas HTTP de verdade (`GET /producers`, `POST /producers`) e usamos `expect` para verificar a resposta HTTP (status code, corpo da resposta, etc).
|
|
|
|
|
|
- **Execução:**
|
|
|
Quando você roda o comando:
|
|
|
```bash
|
|
|
npm test
|
|
|
- **Execução:** quando você roda o comando npm test, você está dizendo: "Jest, por favor, encontre todos os arquivos .spec.ts e .e2e-spec.ts no projeto, execute todas as especificações que estão dentro deles e me diga se o nosso código está se comportando de acordo com as regras que escrevemos".
|
|
|
|
|
|
|
|
|
|
... | ... | |