使用酶进行单元测试动作调度

时间:2017-05-02 03:23:56

标签: redux react-redux redux-form enzyme ava

我正在尝试编写一个简单的单元测试,以确保react组件中的表单是否会在提交时调度预期的操作。

代码:

在我要测试的组件内部表单提交操作:

   <form onSubmit={(values, dispatch) => {  
        store.dispatch(doSomething());
        handleSubmit(values, dispatch);
    }}>

测试:

test('Test', (t) => {
const TestForm = TestForm();//redux form
const dispatchSpy = sinon.spy();

const props = Object.assign({}, baseProps, {
    handleSubmit: (callback) => {
        callback({}, dispatchSpy);
    },
});
t.context.form = mount(<Provider store={store}><TestForm /></Provider>);
t.context.form.find('form').simulate('submit');
//TODO - assert

这里的问题是我收到以下错误,我无法弄清楚问题:

TypeError: callback is not a function

对此有何想法?感谢。

1 个答案:

答案 0 :(得分:0)

您确定要测试表单调度提交时的预期操作吗?我觉得它只是重写了redux-form的内部测试(已经在这里进行了测试: https://github.com/erikras/redux-form/blob/master/src/tests/Form.spec.js#L131-L-165