我的代码:
before(function _before() {
this.myObject = new MyObject();
});
it('should', sinon.test(function() {
const stubLog = sinon.stub(this.myObject.log, 'warn');
}));
it('should 2', sinon.test(function() {
const stubLog = sinon.stub(this.myObject.log, 'warn');
}));
sinon版本:1.17.6
为什么我在2应用测试中遇到错误TypeError: Attempted to wrap warn which is already wrapped
?我应该手动恢复stubLog
吗?我认为sinon.test()
会为我做这件事。也许我做错了什么?
欢迎任何评论。感谢
答案 0 :(得分:-1)
您是否尝试在沙盒中使用this.stub()
而不是sinon.stub()
?
const stubLog = this.stub(this.myObject.log, 'warn');
来自official docs,一个例子:
it('should do something', sinonTest(function(){
var spy1 = this.spy(myFunc);
var spy2 = this.spy(myOtherFunc);
myFunc(1);
myFunc(2);
assert(spy1.calledWith(1));
assert(spy1.calledWith(2));
}));
一旦用sinon.test()
包装,该函数将访问自身内部的this
指针并使用它来存根/间谍其他函数。
使用它会自动为您恢复存根。