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
を取得します。どのように関数呼び出しをスタブするのですか?
はオプションではありません。これはテストファイルで起こっています。私は 'Mock'クラスの外から関数をスタブする必要があります – ewok
外部から呼び出すために更新されました。 –