"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Adicionando Jest ao Explicador.js

Adicionando Jest ao Explicador.js

Publicado em 2024-11-09
Navegar:285

Esta semana deveríamos adicionar test à nossa ferramenta cli. Até agora, a coisa mais frustrante de se fazer.

Por que escolhi Jest

Sou um grande defensor do TDD (Test Driven Development). Quase todo código de peça deve ser testado. Durante minha cooperativa, passei mais da metade do tempo escrevendo testes para minhas relações públicas. Acredito que essa experiência realmente me ajudou a entender a necessidade dos testes. Fiquei surpreso ao ver como a estrutura de teste em JS e Ruby é semelhante. Usei o Jest, que é muito semelhante ao RSpec que usei durante minha cooperação. Para simular a solicitação http, usei o Nock, meio semelhante a algo chamado VCR.

Problemas que enfrentei (muitos deles)

O principal problema que enfrentei foi usar ESM em vez de CommonJS. O que tornou minha vida muito mais difícil. O primeiro problema foi jest.mock não funcionar. Depois de algumas pesquisas percebi que a forma de zombar é diferente no ESM. Infelizmente, mesmo depois de seguir a documentação, não consegui fazê-lo funcionar. Então, eu tive que fazer jest.spyOn. O segundo problema que enfrentei foi que o execa executa em child_process o index.test.js, embora ele não afete o relatório de cobertura. Então tive que usar jest.spyOn para reescrever o teste. Também tive que refatorar o index.js para que ele não levasse as flags que estou passando para brincadeira. Outro problema menor que enfrentei foi usar node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs em vez de jest -c jest.config.mjs porque eu estava usando o ESM. Eu também tive que usar mock-fs para replicar o sistema de arquivos para testar FilepathResolver.test.js porque o simples jest.spyOn não o testou completamente o suficiente. Fiquei surpreso com quantos obstáculos foram causados ​​apenas pelo uso do ESM e isso apenas reflete a bagunça que o JS é.

Depois de muitos erros de tentativa, consegui uma cobertura muito boa.

Adding Jest To Explainer.js

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/aamfahim/adding-jest-to-explainerjs-50f?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3