在Jest中测试嵌套函数

时间:2019-11-12 15:17:45

标签: javascript function jestjs

我有 file.js 代码,通过这种方式我可以对其进行简化:

function Apple(,data) {
  this.attr1 = data.attr1,
  this.attr2 = data.attr2,
  this.doSomething(data.flag);
}

Apple.prototype = new function() {
  this.function1 = function() {
    // do something
  }
  this.doSomething = function(flag) {
    // return value
  }
}

我想测试function1(),为此,我想先模拟doSomething()以返回特定值,但是我失败了,因为对Apple()函数的任何调用都会立即执行{{ 1}}:

doSomething()

我如何实现我的目标?

1 个答案:

答案 0 :(得分:1)

尝试使用spyOn

const mockDoSomething = jest.spyOn(Apple.prototype, 'doSomething').mockReturnValueOnce((flag) => {
    // mock do something;
})