使用Jest在React中测试一个方法,该方法调用另一个与测试无关的方法

时间:2018-01-23 12:01:17

标签: javascript reactjs unit-testing jestjs

学习单元测试,我正在尝试使用Jest来测试React组件。但是我在测试调用另一个方法的组件的方法时遇到了一个错误,该方法完全驻留在另一个项目中,然后父方法改变了它的组件的状态,所以另一个方法上的所有内容都被调用了通常是未定义的,因此导致此测试错误。任何人都可以指导我如何处理这个问题?假设正在测试的方法是:

methodToBeTested() {
    methodResidingIntoAnotherProject();
    this.setState({someState: true}); // someState is initially false
}

测试:

describe("testing the component's behaviour"), () => {
    it("testing the methodToBeTested", () => {
       const {wrapper} = setup();
       wrapper.setState({someState: false});
       wrapper.instance().methodToBeTested();

    expect(wrapper.state().someState).toEqual(true);
    });
});

wrapper和整个setup有效,因为我已经尝试过其他结构测试。抛出的错误是: " TypeError:无法读取属性' someVariable'未定义"。 ' someVariable'是嵌套方法。

0 个答案:

没有答案