2016 no Jest
Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →
2016 foi um ano importante para os testes em JavaScript com o Jest. Nos primeiros seis meses do ano, reescrevemos o Jest e construímos uma base sólida para melhorar significativamente o desempenho e a experiência do desenvolvedor ao testar código JavaScript. Adicionamos tipagem Flow em todo o código-base, criamos diversos testes de integração para o próprio Jest e adotamos lerna para transformar o Jest de um framework em uma plataforma de Testes JavaScript sem Dores.
O recém-criado react-test-renderer finalmente permitiu testar componentes do react-native. Através do preset jest-react-native (agora incorporado diretamente ao react-native), o Jest agora funciona imediatamente em qualquer projeto React e vem pré-configurado em projetos create-react-app e react-native. Integramos partes essenciais do Jest no empacotador do react-native e o novo recurso de snapshot testing já está sendo usado fora do Jest: foi integrado ao React Storybook como "storyshots" e está sendo adotado por outros executores de testes como ava.
O projeto pretty-format foi reescrito com foco em desempenho para impulsionar o recurso de snapshots do Jest, foi recentemente incorporado ao monorepo do Jest e também é útil em outros executores de testes. Hoje, o Jest é muito mais sobre coletar diferentes ideias e soluções para testes do que sobre uma implementação específica de framework de testes.
Gostaria de agradecer profundamente todas as pessoas que contribuíram para o Jest neste ano, tanto da comunidade open source quanto do Facebook: Dmitrii Abramov, Cristian Carlesso, Dan Abramov, Daniel Lo Nigro, Maxim Derbin, Evan Scott, Forbes Lindesay, Keyan Zhang e mais 60 pessoas. Também damos as boas-vindas a Michał Pierzchała (@thymikee) como primeiro contribuidor externo oficial do Jest. Ele tem feito um excelente trabalho gerenciando issues e PRs no repositório. Se você quer começar a contribuir com o Jest, temos várias tarefas iniciais e estamos sempre felizes em ajudar em nosso canal do Discord.
repl.it com integração do Jest
Amjad Massad criou um container do Jest para que você possa testar o Jest diretamente no navegador. Você pode usá-lo a partir de agora ao criar issues no GitHub, o que deve ajudar a solucionar problemas mais rapidamente. Amjad e Haya estão desenvolvendo o repl.it para democratizar a programação criando ferramentas e plataformas poderosas e simples para educadores, estudantes e desenvolvedores. Eles também estão contratando engenheiros talentosos!
Atualização da Comunidade
Ficamos extremamente honrados que mais de 100 empresas adotaram o Jest nos últimos seis meses. Empresas como Twitter, Pinterest, Paypal, nytimes, IBM (Watson), Spotify, eBay, SoundCloud, Intuit, FormidableLabs, Automattic, Trivago e Microsoft migraram total ou parcialmente para o Jest em suas necessidades de testes JavaScript. Muito obrigado por dar uma chance a este projeto. Também agradecemos a todos que foram a conferências e meetups para falar sobre o Jest e a todos que estão escrevendo posts sobre como o Jest está funcionando (ou não) para eles!
Aqui está o que aconteceu na comunidade nos últimos dois meses:
-
Jason Bonta e Dmitrii Abramov redefiniram a "pirâmide de testes" sobre a qual falamos muito no Facebook.
-
jest-codemods agora permite que você migre sem esforço do Mocha, Tape e Ava para o Jest.
-
A equipe do React anunciou melhorias no react-test-renderer na versão 15.4.0.
-
Orta Therox construiu uma incrível integração do vscode-jest e doou o código para suporte de editor ao Jest.
-
Pavithra Kodmad está documentando a adoção do Jest pela Flipkart e compartilha algumas dicas para começar.
-
Kent C. Dodds escreveu sobre migrar para o Jest no Paypal e Jason Brown também escreveu sobre migrar para o Jest.
-
Ben McCormick escreveu sobre economizar tempo com o Jest.
-
Eric Clemmons escreveu sobre snapshots e integração com o storybook.
-
Edvin Erikson escreveu sobre como obter saída no formato Tap no Jest.
-
jest-html pode trazer a comparação de snapshots para o seu navegador.
-
Houve algumas ótimas discussões no hackernews sobre o Jest.
-
A comunidade iniciou uma ótima discussão sobre o futuro do enzyme.
-
Ruben Oostinga escreveu sobre combinar os matchers do chai e do Jest.
-
Emil Ong escreveu sobre por que "Fazer TDD no seu frontend parece inútil".
-
Nate Hunzaker escreveu sobre testes de ponta a ponta com Jest e Nightmare.
-
Usar o Jest com o Angular simplesmente funciona de acordo com Matthieu Lux.
-
Uma fantástica discussão sobre o propósito dos testes de snapshot está acontecendo agora.
-
Dmitrii fez um novo clipe com sua banda de metal.
-
lazyspec pode ajudá-lo a criar testes de fumaça rapidamente se você estiver introduzindo testes em uma base de código existente.
-
Patrick Stapfer fez uma apresentação rápida sobre vim e Jest.
-
Mark Dalgleish comentou sobre o valor dos testes de snapshot.
Novos recursos, mudanças e correções no Jest 17 e 18
O Jest foi criado há mais de cinco anos e, como um framework antigo, acumulou alguma dívida técnica. Por isso, tendemos a fazer mudanças que quebram compatibilidade com mais frequência do que pode parecer necessário: Acreditamos que é importante reduzir gradualmente a dívida técnica para garantir que o Jest permaneça sustentável a longo prazo. Não anunciamos o Jest 17 em uma postagem de blog e, se você ainda não atualizou para ele no último mês, pode achar o changelog útil.
-
Breaking: Removido
pitem favor deitoutestemockImplem favor dejest.fn()oumockImplementation. -
Breaking: Renomeado
--jsonOutputFilepara--outputFile. -
Breaking: Atualizado
testRegexpara incluir arquivostest.jsespec.js. -
Breaking: Substituído
scriptPreprocessorpela nova opçãotransform. -
Breaking: A função
testResultsProcessoragora precisa retornar os resultados modificados. -
Potentially Breaking: Agora resolvemos corretamente
snapshotSerializers,setupFiles,transform,testRunneretestResultsProcessorcom um algoritmo de resolução em vez de usarpath.resolve. Isso significa principalmente que<rootDir>não é mais necessário nessas opções. -
Added:
pretty-formatejest-editor-supportforam incorporados ao Jest. -
Added:
expect.any,expect.anything,expect.objectContaining,expect.arrayContaining,expect.stringMatching. -
Added:
--testResultsProcessoragora exposto via CLI. -
Added: Implementada observação de arquivos em
jest-haste-map. -
Added: O uso do Jest no modo watch pode ser ocultado via
JEST_HIDE_USAGE. -
Added:
expect.assertions(number)garante que um número específico de asserções seja feito em um teste. -
Added: Recurso
.toMatchSnapshot(?string)para nomear snapshots. -
Added: Matchers
toMatchObject,toHaveProperty,toHaveLength. -
Added:
expect.extend. -
Added: Suporte para serializadores de snapshot personalizados.
-
Added: Diferenças grandes agora são recolhidas por padrão em snapshots e asserções. Adicionado
--expand(ou-e) para mostrar a diferença completa. -
Added:
jest.resetAllMockssubstituijest.clearAllMocks. -
Added:
--jsonagora inclui informações sobre testes individuais dentro de um arquivo. -
Fixed: Rejeições de promessa não tratadas em
test.concurrent. -
Fixed:
babel-plugin-jest-hoistao usarjest.mockcom três argumentos. -
Fixed: O global
JSONemjest-environment-nodeagora vem do contexto vm em vez do contexto pai. -
Fixed: Jest não imprime mais stack traces do Babel.
-
Fixed: Timers falsos são reiniciados quando
FakeTimers.useTimers()é chamado. -
Fixed: Expressões regulares são escapadas corretamente em snapshots.
-
Fixed: Melhoria na formatação de objetos grandes.
-
Corrigido:
NaN% Failedna notificação do sistema operacional ao usar--notify. -
Corrigido: A primeira execução de testes sem timings em cache agora usará processos separados em vez de executar em banda.
-
Corrigido: Comparações de
Map/Set. -
Corrigido:
test.concurrentagora funciona com--testNamePattern. -
Corrigido: Melhoria no matcher
.toContain. -
Corrigido: Resolução adequada de módulos com extensões de plataforma no react-native.
-
Corrigido: Objetos globais built-in em
jest-environment-nodeagora funcionam corretamente. -
Corrigido: Objetos mock agora são criados no contexto da vm em vez do contexto pai.
-
Corrigido:
.babelrcagora faz parte da chave de cache de transform nobabel-jest. -
Corrigido: Parsing de docblock com módulos haste.
-
Corrigido: Saída com código adequado quando o limite de cobertura não é atingido.
-
Corrigido: Jest agora limpa todo o scrollback no modo watch.
-
Descontinuado:
jest-react-nativefoi descontinuado e agora redireciona parareact-native.
Planos para o Jest no primeiro semestre de 2017
Seis meses atrás compartilhamos nossos planos para o Jest e estamos felizes por termos executado bem quase todos eles. Para os próximos seis meses, eis o que planejamos:
-
Feedback instantâneo: Integração com Nuclide e um modo watch mais rápido e aprimorado.
-
Experiência do desenvolvedor aprimorada: novas APIs de mocking e asserções melhoradas.
-
Melhor desempenho e uso de memória: analisar o Jest com mais consciência sobre eficiência.
-
Melhorias em snapshots: modo de aprovação de snapshots, destaque de sintaxe e APIs aprimoradas do
react-test-renderer. -
Website: Reformularemos o site e documentação, adicionando uma folha de consulta do Jest.
Não forneceremos cronogramas ou estimativas para esses recursos, e talvez não consigamos implementar tudo. Se quiser ajudar a tornar essas ideias realidade, envie issues e pull requests com suas sugestões e vamos trabalhar juntos para melhorar o Jest em 2017.
