【问题标题】:Jest Test to check redux-form nameJest Test 检查 redux-form 名称
【发布时间】:2017-08-03 14:30:41
【问题描述】:

我是 Jest 的新手,redux。我的 redux 形式(在 Typescript 中)如下:

let SelectorForms = reduxForm({
  form: 'selector-form',
  validate,
})(SelectorForms);

SelectorForms = connect(state => (
  {initialValues: {code: state.code,
    region:state.region}}))(SelectorForms);

export default SelectorForms

我正在尝试编写一个测试来验证表单名称为:

import * as React from "react";
import {mount} from "enzyme";
import thunk from "redux-thunk";
import {Provider} from "react-redux";
import SelectorForms from "./SelectorForm";
import {mockClient} from "./mockClientData";
import configureStore from "redux-mock-store";

const mockStore = configureStore([thunk]);
const store = mockStore({
  selectedClient: {
    clientInfo: mockClient
  },
  cimplicityQueryStringData:{Code:'1234',region:'REG'}
});
let component;
describe("Header", () => {
  beforeEach(() => {
    component = mount(
      <Provider store={store}>
        <SelectorForms />
      </Provider>
    );
  });

  it("should have selector-form", () => {
    console.log(component);
    expect(component.find("selector-form").length).toBe(1);
  });

});

但是,测试失败了。我需要知道如何获取表单名称。

我应该在连接状态之前将其导出吗?如果有怎么办?

【问题讨论】:

    标签: javascript typescript redux-form jestjs


    【解决方案1】:

    你应该导出 reduxForm 选项对象。

    export const selectorFormOptions = {
      form: 'selector-form',
      validate,
    };
    
    let SelectorForms = reduxForm(selectorFormOptions)(SelectorForms);
    

    然后你可以import { selectorFormOptions }expect(selectorFormOptions).toEqual(...)

    【讨论】:

      【解决方案2】:

      这也有效:

      export const formName = 'selector-form';
      
      let SelectorForms = reduxForm({
        form: formName,
        validate,
      })(SelectorForms);
      
      SelectorForms = connect(state => (
        {initialValues: {code: state.code,
          region:state.region}}))(SelectorForms);
      
      export default SelectorForms

      测试如下:

      import * as React from "react";
      import {formName}  from "../SelectorForm";
      
      describe("Client Selector Form", () => {
       it("form name should be selector-form", () => {
          expect(formName).toBe('selector-form');
        });
      });

      【讨论】:

        猜你喜欢
        • 2018-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        相关资源
        最近更新 更多