到目前为止,我一直喜欢 Jest 测试 React 组件。
我已经使用/一直使用 Mocha/Jasmine 来测试节点后端,我只是想问问是否可以(并推荐)使用 Jest 进行后端测试,因为我在文档中找不到任何指示(React , React-Native, Async, Webpack, 即没有Node
)
我只是尝试使用它,但不幸的是我立即遇到了障碍。 brcypt
触发[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
警告并且由于运行时错误( TypeError: Path must be a string. Received undefined
)导致测试失败
现在是否可以使用 Jest 进行后端测试,或者它不是项目范围的一部分,而像 Jasmine 这样的东西更适合?
您尝试进行什么样的后端测试? Jest 本身使用 Jest 进行测试,大量的库使用 Jest 进行测试。 你能在 github 上提供一个存储库,我可以用它来显示你的问题的npm install
和npm test
吗?
我推荐两件事:尝试设置"automock": false
和"testEnvironment": "node"
。 如果您的其他测试依赖于此,您可以创建一个单独的 Jest 配置并使用--config=pathToConfig.json
运行 jest 并使用modulePathIgnorePatterns
忽略前端测试。
感谢@cpojer 的快速回复!
很高兴听到 Jest 可以与 Node 一起使用! 我认为它会,因为它本质上是一个测试库并且 API 应该可以正常工作,但我觉得有必要问它,特别是因为几乎没有在线资源显示它与 Node 后端一起使用,并且主要与 react(或我的 Google-Fu只是不够好)。
我已经在嘲笑我的node_modules
所以事实并非如此,但是testEnvironment: node
做到了!
干杯!
是的,默认环境 ( jsdom
) 并不总是适合节点测试。 另一个好处是节点 env 的加载速度会快 500 毫秒(实际上是即时的),因为 jsdom 有点慢。
最有用的评论
您尝试进行什么样的后端测试? Jest 本身使用 Jest 进行测试,大量的库使用 Jest 进行测试。 你能在 github 上提供一个存储库,我可以用它来显示你的问题的
npm install
和npm test
吗?我推荐两件事:尝试设置
"automock": false
和"testEnvironment": "node"
。 如果您的其他测试依赖于此,您可以创建一个单独的 Jest 配置并使用--config=pathToConfig.json
运行 jest 并使用modulePathIgnorePatterns
忽略前端测试。