Ir para o conteúdo principal

Jest 13.0: Flow e REPL

· 3 min de leitura"
Tradução Beta Não Oficial

Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →

Hoje temos o prazer de anunciar a próxima versão principal do Jest. Fizemos grandes alterações que beneficiarão você e toda a infraestrutura de testes JavaScript do Facebook. Mais importante, adicionamos tipos estáticos a todo o código do Jest durante um recente hackathon na sede do Facebook. Quinze pessoas trabalharam dia e noite para adicionar tipos do Flow ao Jest e implementar novos recursos. Os tipos do Flow têm dois objetivos principais: primeiro, acreditamos que código é escrito para ser lido. Na maioria das vezes, o código é escrito uma única vez mas lido por dezenas de pessoas ao longo de anos. Adicionar tipos estáticos ajuda a documentar o código e explica parte da arquitetura do Jest. Segundo, os tipos estáticos facilitam a manutenção e nos permitem refatorar partes do Jest com mais confiança, sem medo de quebras.

O projeto Flow evoluiu muito dentro do Facebook e foi adotado com sucesso em muitos de nossos frameworks e em quase todo nosso código de produtos. A adoção pode ser paralelizada incrivelmente bem – pode ser feita arquivo por arquivo até que grande parte da base de código esteja bem tipada. Então, o Flow entrega valor real e ajuda a guiar grandes mudanças. Através disso, muitos casos extremos e pequenos bugs foram encontrados.

Com a ajuda do lerna, continuamos modularizando o projeto Jest. Com apenas uma pequena atualização na configuração, Flow e lerna agora funcionam bem juntos. Dividir o Jest em pacotes nos ajudou a repensar os limites dos módulos e permitiu lançar pacotes úteis de forma independente: As ferramentas CLI jest-runtime e jest-repl agora permitem executar scripts em um ambiente Jest isolado, possibilitando rodar e depurar seu app pela linha de comando. Isso é especialmente útil para projetos que usam a convenção de módulos @providesModule do Facebook. Para começar, basta instalar o jest-repl e executá-lo na mesma pasta onde você normalmente roda seus testes! Também publicamos o pacote jest-changed-files que encontra arquivos alterados no controle de versão para git ou hg, algo comum em ferramentas de desenvolvimento.

Novos recursos e melhorias

  • Adicionado plugin de notificação que exibe alerta de execução de testes ao usar --notify.

  • Adicionada opção de configuração browser para resolver corretamente pacotes npm com campo browser no package.json ao testar aplicações client-side.

  • Melhorada mensagem "nenhum teste encontrado", que agora reporta quais testes foram encontrados e como foram filtrados.

  • Adicionado jest.isMockFunction(jest.fn()) para testar funções mock.

  • Aprimorada impressão do reporter de testes e adicionado resumo de falhas ao executar muitos testes.

  • Adicionado suporte para mock de módulos virtuais via jest.mock('Module', implementation, {virtual: true}).

  • Removida pasta .haste_cache. Jest agora usa o local temporário preferido do sistema operacional.

  • Adicionada duração de testes individuais no modo verboso.

  • Adicionada capacidade de gravar snapshots no Jest. Publicaremos um post separado sobre este recurso em breve.

Por fim, recebemos um redesign completo do site feito por Matthew Johnston e adicionamos documentação para usar Jest com webpack. Boas práticas de teste com Jest!