小编典典

如何单元测试React Component shouldComponentUpdate方法

reactjs

我有一个React组件,它实现了shouldComponentUpdate方法,我想对其进行单元测试。理想情况下,我可以在单元测试中更改组件的某些属性或状态,并验证是否重新渲染。如果有帮助,我正在使用


阅读 295

收藏
2020-07-22

共1个答案

小编典典

我可能只会直接调用shouldComponentUpdate。

就像是

const comp = shallow(<Comp {...props} />)
const shouldUpdate = comp.instance().shouldComponentUpdate(nextProps, nextState)
expect(shouldUpdate).toBe(true/false)

尝试通过确定组件是否实际渲染/未渲染来进行测试可能比其价值更大。我什至不知道你会怎么用酶来做到这一点。您不能真正脱离渲染的输出,因为除非渲染的输出与以前相同,否则您可能不会从shouldComponentUpdate返回false。因此,仅靠输出就不能确定渲染是否发生。

通过直接调用它进行测试对我来说似乎还不错。只要您相信React将正确使用您的shouldComponentUpdate返回值(如果没有,我们就会遇到更大的问题),那是安全的。

2020-07-22