字段必须在用reduxForm()装饰的组件内,测试文件中的错误

时间:2019-05-17 15:48:20

标签: reactjs jestjs enzyme redux-form

运行测试时,出现错误:

Field must be inside a component decorated with reduxForm()

我正在嘲笑一家商店,所以我认为这可以解决在测试中注入redux的问题,但是我不确定。

在pointings.js内部,我有一个具有redux形式的组件

import React from 'react';
... other imports
import configureMockStore from 'redux-mock-store';
import { mount } from 'enzyme';
import expect from 'expect';
import { Provider } from 'react-redux';
import { IntlProvider } from 'react-intl';
import LoginSection from '../User/LoginSection';
import AppointmentsContainer from './AppointmentsContainer';
import Appointments from './Appointments';
import AppointmentStatus from .../Layout/AppointmentStatus/AppointmentStatusContainer';

jest.mock('./Appointments');
jest.mock('../User/LoginSection');
jest.mock('../Layout/AppointmentStatus/AppointmentStatusContainer');

const store = configureMockStore()({
  form: 'Appointments',
});

const setup = (newProps) => {
  const props = {
    handleSubmit: jest.fn(),
    },
    form: 'appointmentsContainer',
    locale: 'en',
    ...newProps,
  };

  const root = mount(
    <Provider store={store}>
      <IntlProvider {...props}>
        <AppointmentsContainer {...props} />
      </IntlProvider>
    </Provider>
    ,
  );

  const wrapper = root.find(Appointments);

  return {
    root,
    wrapper,
    props,
  };
};

describe('AppointmentsContainer', () => {
  beforeEach(() => {
    store.clearActions();
  });

任何想法我该如何解决?

0 个答案:

没有答案