Reactjs 反应组件测试:is";酶;测试类组件和;“测试库”;更多的是功能组件吗?

Reactjs 反应组件测试:is";酶;测试类组件和;“测试库”;更多的是功能组件吗?,reactjs,jestjs,enzyme,react-component,react-testing-library,Reactjs,Jestjs,Enzyme,React Component,React Testing Library,我正在努力测试简单的组件(功能),通过改变输入值,应该通过onChange事件改变组件状态中的var。 似乎随着状态和函数封装在组件中,测试库更合适。 有道理? 是否有关于何时使用的规则/指南? 谢谢。断言实现细节(如组件状态)违背了React测试库的原则 相反,库建议您编写与用户与代码交互方式非常相似的测试 从: 我们试图只公开鼓励您编写与web页面使用方式非常相似的测试的方法和实用程序 是否有关于何时使用的规则/指南 这可能是一个有点主观的话题,可能会因您所在的团队而异 就我个人而言,我从

我正在努力测试简单的组件(功能),通过改变输入值,应该通过onChange事件改变组件状态中的var。 似乎随着状态和函数封装在组件中,测试库更合适。 有道理? 是否有关于何时使用的规则/指南?
谢谢。

断言实现细节(如组件状态)违背了React测试库的原则

相反,库建议您编写与用户与代码交互方式非常相似的测试

从:

我们试图只公开鼓励您编写与web页面使用方式非常相似的测试的方法和实用程序


是否有关于何时使用的规则/指南

这可能是一个有点主观的话题,可能会因您所在的团队而异

就我个人而言,我从只使用酶(特别是
shallow
rendering)改为只使用React测试库,结果如下:

  • 它改善了我的开发经验,因为我觉得当代码实现发生变化时,测试变得更容易维护
  • 我对这些测试更有信心,因为它们现在更像软件的实际使用方式
  • 测试更容易阅读,更直观。想想看,
    点击此按钮应该显示消息,而不是
    组件x应该有正确的属性y
我相信酶可以做很多反应测试库所做的事情,然而,我建议至少不要使用
浅层
渲染

我还没有找到一个酶解决了React测试库无法解决的问题的用例。但这并不意味着它不存在。这只是意味着RTL现在很适合我