在以下示例中,我想stub get
函数来阻止实际的HTTP请求发生。我希望spy on使用get
方法来检查调用它的参数。
var request = require('request'), sinon = require('sinon');
describe('my-lib', function() {
sinon.stub(request, 'get').yield(null, null, "{}");
var spy = sinon.spy(request, 'get');
it('should GET some data', function(done) {
function_under_test(function(err, response) {
if(error) return done(error);
assert(request.get.called);
assert(request.get.calledWith('some', 'expected', 'args'));
});
});
});
但是,Sinon似乎不允许间谍和抄袭相同的方法。上面的示例给出了以下错误:
TypeError: Attempted to wrap get which is already wrapped
如何监视方法,同时防止默认行为?
答案 0 :(得分:44)
存根支持间谍的所有方法。只是不要创建间谍。