【发布时间】:2020-06-07 18:05:49
【问题描述】:
所以我正在尝试测试是否在我的表单上调用了句柄提交函数。它达到了如下所示的条件并阻止提交表单。我将如何模拟内部的验证函数以返回一个空对象 {}。这将使我的表单有效,然后按要求提交。
Validate 在 form.jsx 中的 Form 组件之外定义。我将其导出为 export const validate = {}
handleSubmit = event => {
const {args} = this.state;
let errors = validate(args);
const isValid = isEmpty(errors)
if(!isValid) {
this.setState({args: args})
event.preventDefault()
}
this.setState({args: args})
}
我的尝试
it('should handleSubmit when form is submitted', () => {
const fakeValidate = { validate: () => true };
const handleSubmit = jest.fn().mockImplementation((cb) => () => cb({ test: 'test' }));
const wrapper = shallow(<Form form="test" onSubmit={handleSubmit}/>);
wrapper.find('form').simulate('submit', fakeValidate);
expect(handleSubmit).toBeCalledTimes(1);
});
谢谢!
【问题讨论】:
-
这完全取决于
validate的来源。您没有指定。请为您的问题提供stackoverflow.com/help/mcve。 -
抱歉,我已经更新了。