繁体   English   中英

sinon:如何存根实例方法

[英]sinon: how to stub an instance method

这是我正在处理的代码:

Test.js

class Test {
  constructor() {
  }

  func () {
    console.log('original')
  }
}

module.exports = Test

Mock.js

Test = require('./Test')

function Mock(){
  this.test = new Test()
}

Mock.prototype.call = function() {
  this.test.func()
}

module.exports = Mock

我试图存根Test.func调用这里面Mock.call 我已经试过了:

sb = sinon.createSandbox()
sb.stub(Test, 'func').callsFake(() => { console.log('stubbed') })

但是我得到TypeError: Cannot stub non-existent own property func 当我这样做时:

sb.stub(new Test(), 'func').callsFake(() => { console.log('stubbed') })
new Mock().call()

我得到了original打印,这意味着存根不能正常工作。 如何将函数调用存根?

您需要在创建的实例上存根:

var mock = new Mock();

sinon.stub(mock.test, 'func').callsFake(() => { console.log('stubbed') });
mock.call(); // should output "stubbed"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM