使用 SinonJS 对同一个函数进行存根和监视?
Use SinonJS to stub and spy on the same function?
在下面的示例中,我想 stub the get
function to prevent the actual HTTP request from occurring. I want to 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
如何在防止默认行为的同时监视方法?
存根支持间谍的所有方法。只是不要制造间谍。
在下面的示例中,我想 stub the get
function to prevent the actual HTTP request from occurring. I want to 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
如何在防止默认行为的同时监视方法?
存根支持间谍的所有方法。只是不要制造间谍。