如何在componentDidMount中模拟类函数

时间:2018-11-28 11:49:07

标签: javascript reactjs mocking jestjs

class myClass extends React.Component {
     async componentDidMount(){
         const xyz = helperclass.queryParameters('parameter')
         // how can I mock xyz to help me change the value to test the conditional below
         if(xyz){
            // do something here
          }
     }
}

已经编辑了上面的代码,现在我想通过将其模拟出来,然后将其他内容返回以测试条件条件中的内容是否完成,来将const xyz测试为helper函数的值

1 个答案:

答案 0 :(得分:0)

由于myFunctionToMock是原型方法,因此可以模拟为

jest.spyOn(MyClass.prototype, 'myFunctionToMock').mockImplementation(...);

在类实例化之前。

“酶”中的另一个选项是使用disableLifecycleMethods option禁用钩子,在wrapper.instance()上模拟方法,然后手动调用componentDidMount

如果某个方法不属于this,则可以在该方法所属的对象上对其进行模拟:

jest.spyOn( helperclass, 'queryParameters').mockImplementation(...);

同样,这应该在类实例化之前完成,或者需要使用disableLifecycleMethods