Configurando uma pré-rotina que será executada antes da suite de testes com o jest framework
Olá pessoal, recentemente em um projeto pessoal eu precisei configurar uma rotina específica para rodar sempre antes de cada teste usando o framework jest e acabei achando uma configuração nativa bem interessante que eu gostaria de compartilhar com vocês neste post rápido.
Atenção: Este post tem como premissa que você tenha um conhecimento básico no framework jest.
- Configurando o arquivo jest.setup.ts
Este arquivo será responsável por executar uma rotina antes da execução de cada teste. Algumas sugestões que você pode usar.
- Limpar o cache;
- Truncar os dados de uma tabela/banco de dados;
- Importar alguma library que ativa o “reflection” no typescript;
- etc…
Para tal, o que você precisa fazer é criar um arquivo chamado jest.setup.ts na raiz do seu projeto e colocar a sua regra de negócio que vai ser executada.
Para exemplificar, o meu contexto foi voltado para importar por padrão alguma library que ativasse o reflection antes da execução de cada teste unitário. Sendo este um fato necessário para da library tsyringe que esta sendo usada no meu projeto, conforme será mostrado abaixo.
import 'reflect-metadata';
2. Configurando a execução do teste
Após ter criado o arquivo jest.setup.ts com a rotina a ser executada, o que você vai precisar fazer é configurar o framework jest para chama-lo através da configuração do arquivo chamado jest.config.ts e adicionar a linha abaixo.
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
Com isso, após você configurar a linha acima, toda vez que um novo arquivo de teste for executado o nosso arquivo jest.setup.ts será chamado e executado.
Caso deseje analisar toda a configuração do arquivo jest.config.ts, eu convido-o a visitar o meu repo abaixo.
3. Executando os testes
Por fim, para executar os testes tudo o que você precisa fazer é executar o comando:
./node_modules/.bin/jest
Que terá um output parecido com o abaixo:
@tiktaktoe/core: Test Suites: 12 passed, 12 total
@tiktaktoe/core: Tests: 46 passed, 46 total
@tiktaktoe/core: Snapshots: 0 total
@tiktaktoe/core: Time: 7.925 s
@tiktaktoe/core: Ran all test suites.
Obrigado pela sua leitura e eu espero que este post tenha ajudado você a entender um pouco sobre como configurar e executar uma rotina antes da execução de cada arquivo de teste de sua suite.
Então, se você gostou não esqueça de apertar no 👏 e compartilhar