我在
之前完成了以下存根sinon.stub(console, 'log', () => {
// Check what the arguments holds
// And either console.info it or do nothing
});
例如,在其中添加console.info(arguments)
会向我显示console.log
正在获得的内容。
使用版本2xx
,我切换到callsFake
:
sinon.stub(console, 'log').callsFake(() => {
// Check what the arguments holds
// And either console.info it or do nothing
});
这现在更长久了。 console.info(arguments)
具有市集价值,与console.log
传递的内容无关。
我做错了什么?!
答案 0 :(得分:3)
您传递给callsFake
的箭头功能并没有像通常在常规功能中所期望的那样接收arguments
对象。
来自MDN
箭头函数表达式的语法短于函数表达式,并且没有自己的参数,super或new.target。
将箭头函数更改为常规匿名函数(function() {...}
)或使用spread运算符显式解包参数:
sinon.stub(console, 'log')
console.log.callsFake((...args) => {
console.info(args)
});