我是单元测试的新手。我想测试 React 项目。当我开始使用 React 文档时,该文档将酶称为测试实用程序,这对我来说有点模棱两可。
Jest
和 和有什么不一样enzyme
?
- 是
enzyme
断言库还是任务运行器? - 我可以用
karma
用Jasmine
? - 测试
react-redux
项目的最佳方法是什么?
我是单元测试的新手。我想测试 React 项目。当我开始使用 React 文档时,该文档将酶称为测试实用程序,这对我来说有点模棱两可。
Jest
和 和有什么不一样enzyme
?
enzyme
断言库还是任务运行器?karma
用Jasmine
?react-redux
项目的最佳方法是什么?Jest是一个包括任务运行器、断言库和模拟支持的框架。这意味着它可以执行不同的单元测试用例、将其结果写入控制台或日志文件、创建模拟或验证所有断言。简而言之,它将执行测试。
另一方面,Enzyme是一个为编写单元测试提供简单接口的库。为此,它封装了 React TestUtils、JSDOM 和 CheerIO 等包。React TestUtils 具有将 React 组件渲染到文档和模拟事件的方法。JSDOM 是 DOM(文档对象模型)的 JavaScript 实现。DOM 表示 UI 组件的树结构。CheerIO 实现了 jQuery 核心的一个子集,用于查询 DOM。
Enzyme 不是测试运行器。它没有自己的断言库。它只是提供了一组用于单元测试的 API。这就是为什么它可以与 Jest 或任何其他任务运行器集成的原因。
是的,您可以将业力与茉莉花一起使用。
Aaron 的评论回答了您的第一个问题。
Enzyme 为 React 组件提供单元测试实用功能,例如允许浅渲染。Enzyme 文档说你可以将它与任何测试运行器或断言库一起使用 - 请参阅http://airbnb.io/enzyme/。
是的,您可以将业力与茉莉花一起使用。
至于测试 react-redux 项目的最佳方法,这是一个单独的问题,我建议您搜索 Stack Overflow。:)
Enzyme和Jest都有不同的职责“Enzyme”不是测试运行器,这意味着当您输入命令时,npm test
或者npm run test
它是开玩笑的职责,它收集.test.js
并运行每个测试用例的所有文件,并在您的控制台中显示通过和失败结果,如下所示
Enzyme为您提供了捕获 dom 元素并执行一些操作的功能,下面是它的一些功能
shallow, mount, find, children, etc...
您还可以使用React 测试库(另一个流行的测试库)为此类功能访问 dom 元素
额外:开发人员经常混淆
这里Enzyme和react-testing-library是两个相似的东西,相互替代意味着你可以使用
jest(testing-framework) 将收集所有 .test.js 文件,执行所有测试用例,并将输出放在控制台中,详细说明有多少通过和失败,react-testing-library 或酶(都是测试库)将有所帮助您执行事件并访问 dom 元素