【问题标题】:Using react-testing-library and Jasmine使用 react-testing-library 和 Jasmine
【发布时间】:2019-07-07 06:49:43
【问题描述】:

我正在玩 react-testing-library,看看我们是否应该在我们的项目中使用它。我们使用jasmine 而不是jest。我想知道react-testing-library 可以很容易地与jasmine 一起使用(应该没问题...)

我看到的大多数例子都是jest。将react-testing-libraryjasmine 一起使用有什么注意事项吗?有例子吗?

谢谢

【问题讨论】:

  • 它应该可以正常工作,react-testing-library 只是一个 DOM 测试框架,它与jest 或任何其他框架解耦。这些示例显示 jest,因为它是大多数 React 社区使用的。
  • 感谢您的快速回答。我会继续使用它。

标签: reactjs unit-testing jasmine react-testing-library


【解决方案1】:

react-testing-library 与 Jasmine 或其他替代方案一起使用的问题在于,react-testing-library 呈现的组件与它们在浏览器中的行为方式非常接近。与 Enzyme 不同,react-testing-library 不提供用于隔离和细粒度测试的功能,例如浅层渲染和访问组件内部组件(如 props)。

预计所有不应该按原样呈现的组件都应该被模拟(这里是 Jest example),react-testing-library 不为其提供任何功能,它们被模拟的方式由 a开发商。 Jasmine 不提供模拟模块的方法,需要使用第三方解决方案,如rewire。 Jest 提供了模块模拟的功能,包括 babel-jest 转换以在与 import 一起使用时提升模块模拟。

react-testing-library 使用 DOM。如果在 Node.js 中运行测试,则应使用 JSDOM。 Jest 原生设置 JSDOM,而开发人员需要使用 Jasmine 手动设置它。最好在 Node 中而不是在浏览器中运行测试,因为 Node require 的工作方式使得模块可以动态模拟。

【讨论】:

  • 感谢您的回答,非常有用。我会看看 jasmine/rewire 模拟功能
猜你喜欢
  • 2021-06-02
  • 2021-07-18
  • 2019-05-21
  • 2019-06-14
  • 2019-11-11
  • 2021-02-11
  • 2022-06-22
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多