我有一个 React 组件,它实现了应该组件更新 https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate方法,我想对其进行单元测试。理想情况下,我可以在单元测试中更改组件上的某些属性或状态,并验证它是否重新渲染。我在用enzyme https://github.com/airbnb/enzyme如果有帮助的话。
我可能会直接调用 shouldComponentUpdate 。
就像是
const comp = shallow(<Comp {...props} />)
const shouldUpdate = comp.instance().shouldComponentUpdate(nextProps, nextState)
expect(shouldUpdate).toBe(true/false)
尝试通过确定组件是否实际渲染/未渲染来进行测试可能比其价值更麻烦;我什至不确定你如何使用酶来做到这一点。您不能真正放弃渲染的输出,因为除非渲染的输出与以前相同,否则您可能不会从 shouldComponentUpdate 返回 false。因此,无法仅根据输出来确定渲染是否发生。
不过,直接调用它进行测试对我来说似乎很好。只要你相信 React 会正确使用你的 shouldComponentUpdate 返回值(如果不正确,我们就会遇到更大的问题),它就是安全的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)