reactjs - 如何使用 jest 为存在 if 条件的函数编写测试用例
问题描述
我有一个像下面这样的 onUpdate 函数
onUpdate = data => {
if (parseInt(data.quantity) < 1) {
this.props.setErrorPopUp({
message: 'You cannot set quantity to zero.Use delete actions',
action: 'danger',
time: '5000'
})
} else {
this.props.formSubmitAttempt({
product: data.id,
quantity: data.quantity
})
}
}
我想用 jest 编写一个测试来测试这两个场景。由于我是开玩笑的新手,我该如何测试这种情况谢谢
解决方案
您可以使用实例获取 onUpdate 函数并将 setErrorPopup 和 formSubmitAttempt 作为模拟传递。
const props = {
setErrorPopUp: jest.fn();
formSubmitAttempt: jest.fn();
}
const wrapper = shallow(<Component {...props} />
wrapper.instance().onUpdate({ quantity: 0});
expect(props.setErrorPopUp).toHaveBeenCalled();
wrapper.instance().onUpdate({ quantity: 3 });
expect(props.formSubmitAttempt).toHaveBeenCalled();
推荐阅读
- javascript - Google Apps 脚本在我创建新工作表之前复制一张工作表
- php - 传递发送到 php array_strip 的动态值会产生错误
- dart - Dart,为什么是可迭代的
可以存储在列表中 多变的? - docker - Filebeat 没有将日志发送到 Logstash,即使收获成功
- permissions - 如何检测是否提示通知权限
- java - Java 编码 - 'é' 变成 '?'
- r - 区域和年份分数之间的 R 中的 T 检验
- java - Spring,JSON 序列化器,仅在某些情况下序列化一个字段
- javascript - 这个方法/函数如何被调用两次?
- javascript - Javascript循环第一次运行,但第二次给出NaN没有逻辑