如何测试Redux-Form组件?
我进行了以下测试:
describe('<SignIn />', () => {
let wrapper, store;
const props = {isWidthSmallThan750: true, classes: {}};
beforeEach(() => {
store = mockStore({});
wrapper = mountComponent(SignUp, props); //equal to mount(Component)
});
afterEach(() => {
wrapper = null;
store = null;
});
it('snapshot testing', () => {
expect(componentToJSON(SignIn, props)).toMatchSnapshot(); //equal to render.create(Component).toJSON
})
it('when form submitted, these actions may happen', () => {
const form = wrapper.find('form');
wrapper.find('input').at(0).simulate('change', {target: {value: 'Tigran'}});
wrapper.find('input').at(1).simulate('change', {target: {value: 'Tigran'}});
expect(wrapper.find('input').at(0).props().value).toBe('Tigran');
expect(wrapper.find('input').at(1).props().value).toBe('Tigran');
form.simulate('submit');
expect(store.getActions()).toEqual(null);
})
});
但是当调用form.simulate时,我没有得到onSubmit函数调用。
我该如何解决这个问题?
答案 0 :(得分:0)
尝试使用wrapper.find('form').simulate('submit');
代替form.simulate('submit')
。
最新版本的酶缓存会产生结果,因此其状态可能是陈旧的。
也尝试wrapper.find('form').props().submit()
。我强烈建议您不要使用模拟并且直接调用它,因为模拟是片状的。