我正在尝试测试这个模块:
function fa(){
return "function A"
}
function fb(){
return "function B + " + fa()
}
module.exports = {fa, fb}
我用这种方式测试:
var myModule = require("./myModule")
var sinon = require("sinon")
var util = require('util');
sinon.stub(myModule,"fa").returns("stub")
console.log(myModule.fb()) //expect to display "function B + stub"
它实际上显示“功能B +功能A”
如果我用return "function B + " + this.fa()
替换fb的方法体(注意添加this.
),那么它会按预期工作。
有没有办法模拟一个未使用this
调用的函数?
答案 0 :(得分:0)
没有方便的方法。您可以创建一个对象并将其用作参考,因此您可以将该函数称为“方法”
当您将该函数称为“函数”时,会发生什么,函数本身与您导出的函数本身不同。
此读物可以更清楚地说明我所说的内容。 Understanding 'this' keyword