尝试模拟/替换函数中的函数



这是我试图模拟的代码:

stats.totalRequests.labels('incoming').inc(x);

我试过了:

const incFunc = function inc(a) {
return true;
};
const stats = {
totalRequests: {
labels: (a, b, c) => incFunc(a)
}
};
module.__set__('stats', stats);

我也尝试将标签设置为 sinon.stub((。 但我不断收到错误类型错误:stats.totalRequests.labels(...(。Inc 不是一个函数。

任何想法如何实现这一目标? 我不需要任何功能,我只是不希望代码中的原始行执行任何操作。 它可以是存根/空函数或其他任何内容 非常感谢

问题是你需要labels返回一个属性为inc的对象。

例:

const stats = {
totalRequests: {
labels(arg) {
console.log('labels: ' + arg);
return {
inc(x) {
console.log('inc: ' + x);
}
};
}
}
};
let x = 12;
stats.totalRequests.labels('incoming').inc(x);

最新更新