DEV Community

Cover image for Como deixar os testes Jest mais rápidos?
Beto Frega
Beto Frega

Posted on

3 1

Como deixar os testes Jest mais rápidos?

Este é um post rápido só pq não encontrei nenhum conteúdo sobre isso em ptbr. Referências em inglês no final do artigo. Dúvidas (que eu espero que vc tenha, pq artigo curto e escrito em 10 minutos, né?) manda no comentário.

O problem resumido:

  1. O Jest usa CommonJS em vez de ECMAScript Modules. Isso significa [várias coisas e também que] que ele carrega toda a árvore de dependências (as importações) antes de rodar os testes.
  2. É bem provável que o seu projeto use "barrel files" ou "arquivos barril(?)". Esses arquivos exportam vários outros arquivos. Ou seja, pode ser que a sua aplicação esteja sendo importada por completo nos seus testes unitários. Ê, beleza.

A solução resumida:

  1. Evite barrel files;
  2. Caso prefira manter os tais barrel files, faça o mock usando mock factories. Automock não funciona, spy não funciona, precisa ser mock factory.
  3. Centralizar todas as suas importações em alguma injeção de dependências (recomendo o próprio React Context) é outra possibilidade que também faz muito sentido: no contexto da aplicação você injeta as implementações concretas reais e no context só coloca uns fakes. Essa é a minha opção primária, mas é um custo que só compensa em aplicações (bem) grandes.

Referências em inglês:

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video