React / Jest如何测试类组件之外的函数

时间:2017-11-02 23:03:53

标签: reactjs jest

因此,在下面的示例中,我将validateResult设置为displayMessage。根据用户输入,它会返回一个值,这是在类组件之外,我不知道如何使用jest测试类外的函数。

所以我尝试使用mount from enzyme来安装组件然后用实例来访问函数但是这给了我一个错误,说这不是一个函数,我不知道如何测试它。

test.js

const wrapper = mount (
  <tempComponent />,
);
const instance = wrapper.instance();

it('expect result to be good', () => {
  expect(instance.validateResult(true)).toBe("good");
});

tempComponent.js

const validateResult = (data) => {
  if(data)
    return "good";
  else
    return "bad";
};


class tempComponent extends Component {

  constructor(props) {
    super(props);
    this.state = { inputdata: '' };
    this.onSuccess = this.onSuccess.bind(this);
  }

  render() {
    const { inputdata } = this.state;
    const { onSubmit } = this.props;
    const displayMessage = validateResult(inputdata);

    return (
          <div id="submit-form" className="row justify-content-center">
            <div className="col-md-4">
              <FormContainer onSubmit={() => onSubmit({ inputdata }, this.onSuccess)} >
                <Input type="text" label="" onTextChange={(value) => this.setState({ ...this.state, inputdata: value })} text={inputdata} />
                <SubmitButton value={'Submit'} disabled={displayMessage}/>
              </FormContainer>
            </div>
          </div>
    );
  }
}

0 个答案:

没有答案