我想重新保留someHandler.getStatus
,但我得到TypeError: Attempted to wrap getStatus which is already wrapped
..
it('is a test', function() {
sandbox.stub(someHandler, 'getStatus', function(callback) {
callback(null, {
value: 1
});
});
sandbox.stub(someOtherHandler, 'doSomething', function(callback) {
callback(null);
});
sandbox.stub(someHandler, 'getStatus', function(callback) {
callback(null, {
value: 0
});
});
});
答案 0 :(得分:1)
尝试使用外部变量跟踪调用。第一次调用时,返回第一个值并递增计数器。第二次调用(和所有后续调用),返回第二个值。
it('is a test', function() {
let callCount = 0
sandbox.stub(someHandler, 'getStatus', function(callback) {
callback(null, {
value: callCount++ == 0 ? 1 : 0
});
});
sandbox.stub(someOtherHandler, 'doSomething', function(callback) {
callback(null);
});
});
这是一个处理2个调用的简单示例,但是如果需要,可以将其展开以处理多个调用。