我对使用React-Jest-Enzyme进行测试很新,但是从我收集到的所有信息来看,大多数测试似乎实际上是测试React库是否出现问题,而不是我的实际业务逻辑。
我会给您一些例子,如果我错了,请纠正我:
快照测试:
这种策略有什么作用吗?
从我看到的情况来看,它的主要目的是捕捉到代码中任何不想要的更改。它“stringify”我的组件树,并且只注意到是否添加了任何换行符/字符,对吧?
所以它主要用于那些我可能会意外按下键盘的情况吗?或者是别人意外搞乱了我的代码?
Enzyme的mount/shallow和Jest的
我看到的大多数解释如何使用它们的示例都是这样的:
const wrapper = mount(<MyComponeny />)
expect(wrapper.find(‘button’).simulate(‘click)).toHaveBeenCalledTime(1)
我能从中得到什么价值?
如果我使用Enzyme的simulate('click')
来模拟点击按钮,那么我应该期望它会触发点击事件。
我到底在测试什么?是Enzyme的功能吗?
还有Enzyme提供的setState方法。
如果wrapper.setState({value: 'some value'})
应该改变我的状态,为什么我会看到像这样的用例:
wrapper.setState({value: ‘new value’)}
expect(wrapper.state(‘value’)).toBe(‘new value’)
为什么我需要测试测试框架/额外的库?
这似乎有点模糊不清。