如何使用jest为有if条件的函数编写测试用例

时间:2018-12-16 05:20:50

标签: reactjs jestjs

我有一个像波纹管这样的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
        })
    }
}

我想写一个测试来测试这两种情况。 由于我是新手,我如何测试这种情况 谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用实例获取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();