最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

sinon:如何存根实例方法

IT培训 admin 1浏览 0评论

sinon:如何存根实例方法

这是我正在处理的代码:

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"

sinon:如何存根实例方法

这是我正在处理的代码:

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"

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论