Tenho adorado Jest até agora testando os componentes React.
Eu usei / tenho usado Mocha / Jasmine para testar back-ends de nós e só queria perguntar se é possível (e recomendado) usar Jest para teste de back-end, já que não consegui encontrar nenhuma indicação disso nos documentos (React , React-Native, Async, Webpack, ou seja, sem Node
)
Eu apenas tentei usá-lo e, infelizmente, encontrei um obstáculo instantâneo. brcypt
dispara um aviso [SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
e o teste falha devido a um erro de tempo de execução ( TypeError: Path must be a string. Received undefined
)
É possível usar o Jest para teste de back-end agora ou não faz parte do escopo do projeto e algo como Jasmine se encaixa melhor?
Que tipo de teste de back-end você está tentando fazer? O próprio Jest usa o Jest para testes e muitas bibliotecas usam o Jest para testes. Você pode fornecer um repositório no github que eu possa usar para npm install
e npm test
que mostre seu problema?
Duas coisas que eu recomendo: tente definir "automock": false
e "testEnvironment": "node"
. Se seus outros testes dependem disso, você pode criar uma configuração de Jest separada e executar jest com --config=pathToConfig.json
e usar modulePathIgnorePatterns
para ignorar os testes de front-end.
Obrigado pela resposta rápida @cpojer!
Fico feliz em saber que Jest pode ser usado com o Node! Eu estava pensando que sim, já que é essencialmente uma biblioteca de teste e a API deve funcionar, mas senti a necessidade de perguntar, especialmente porque quase não há recursos online mostrando que ela está sendo usada com back-ends de Node e principalmente com react (ou meu Google-Fu apenas não era bom o suficiente).
Eu já estava zombando do meu node_modules
então não era o caso, mas testEnvironment: node
resolveu o problema!
Felicidades!
Sim, o ambiente padrão ( jsdom
) nem sempre se presta bem ao teste de nó. Outro benefício é que o env do nó carregará 500 ms mais rápido (efetivamente instantâneo) porque o jsdom é meio lento.
Comentários muito úteis
Que tipo de teste de back-end você está tentando fazer? O próprio Jest usa o Jest para testes e muitas bibliotecas usam o Jest para testes. Você pode fornecer um repositório no github que eu possa usar para
npm install
enpm test
que mostre seu problema?Duas coisas que eu recomendo: tente definir
"automock": false
e"testEnvironment": "node"
. Se seus outros testes dependem disso, você pode criar uma configuração de Jest separada e executar jest com--config=pathToConfig.json
e usarmodulePathIgnorePatterns
para ignorar os testes de front-end.