Тестирование ReduxForm с ферментом - PullRequest
0 голосов
/ 27 апреля 2020

Как я могу проверить свой компонент 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. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 27 апреля 2020

Попробуйте wrapper.find('form').simulate('submit'); вместо form.simulate('submit').

Самые новые версии результатов ферментного кэша, поэтому его состояние может быть устаревшим.

Также попробуйте wrapper.find('form').props().submit(). Я настоятельно рекомендую вам не использовать симуляцию, а просто вызывать ее напрямую, симуляция является ненадежной.

...