问题:如何为 redux 表单模拟 getFormValues

我正在使用以下代码来测试我的动作创建者。因为我的动作创建者使用存储状态,所以我需要模拟getFormValuesisValid。但是,它会抛出

TypeError: (0 , _reduxForm.getFormValues)(...) 不是函数。

谁能帮我这个?

import * as reduxForm from 'redux-form';
it('creates SAVE_PROPERTY when saving a property', () => {
  reduxForm.getFormValues = jest.fn(() => ({ field1: 'test', field2: 'test2' }));
  reduxForm.isValid = jest.fn(() => false);

  store.dispatch(saveProperty(1));
  expect(store.getActions()).toMatchSnapshot();
  reduxForm.getFormValues.mockRestore();
  reduxForm.isValid.mockRestore();
});

解答

想了很久,终于有了解决办法。希望它可以帮助别人

it("creates SAVE_PROPERTY when saving a property and form values are missing", () => {
    reduxForm.getFormValues = jest.fn(() => () => ({
      field1: "test",
      field2: "test2"
    }));
    reduxForm.isValid = jest.fn(() => () => false);

    store.dispatch(saveProperty(1));
    expect(store.getActions()).toMatchSnapshot();
    reduxForm.getFormValues.mockRestore();
    reduxForm.isValid.mockRestore();
  });
Logo

React社区为您提供最前沿的新闻资讯和知识内容

更多推荐