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"