Jest和酶有什么区别?

时间:2017-03-06 02:26:07

标签: javascript reactjs jasmine jestjs enzyme

我是单元测试的新手。我想测试React项目。当我开始使用React文档时,它将酶称为测试实用程序,这对我来说是模糊的。

Jestenzyme之间的区别是什么?

  • enzyme断言库还是任务转轮?
  • 我可以将karma用于Jasmine吗?
  • 测试react-redux项目的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

Jest 是一个框架,它具有任务运行器,断言库和良好的模拟支持,这意味着它可以执行不同的单元测试用例,将其结果写入控制台或日志文件,可以创建模拟或简而言之,它将执行测试。

另一方面,

Enzyme 是一个包装React TestUtils,JSDOM和CheerIO等软件包的库,可以创建一个更简单的接口来编写单元测试。 React TestUtils具有将反应组件呈现到文档中并模拟事件的方法。 JSDOM是DOM(Document对象模型)的JavaScript实现。 DOM表示UI组件的树结构。 CheerIO实现了jQuery核心的一个子集,用于查询DOM。

因此,酶不是测试运行器它没有自己的断言库,因此它只是为单元测试提供了一系列API。这就是为什么它可以与jest或任何其他任务运行器集成。

是的,你可以使用茉莉花的业力。

答案 1 :(得分:3)

Aaron的评论回答了你的第一个问题。

Enzyme为React组件提供单元测试实用程序功能,例如允许浅层渲染。酶文档说你可以将它用于任何测试运行器或断言库 - 参见http://airbnb.io/enzyme/

是的,你可以使用茉莉花的业力。

就测试react-redux项目的最佳方式而言,这是一个单独的问题,我建议你搜索Stack Overflow。 :)