Mocha.js 使用SinonJS对同一个函数进行存根和监视?

Mocha.js 使用SinonJS对同一个函数进行存根和监视?,mocha.js,sinon,Mocha.js,Sinon,在下面的示例中,我希望使用get函数来防止实际的HTTP请求发生。我想使用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 G

在下面的示例中,我希望使用
get
函数来防止实际的HTTP请求发生。我想使用
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'));
    });
  });
});
不过,西农似乎不允许用同样的方法进行间谍活动和存根。上述示例给出了以下错误:

TypeError: Attempted to wrap get which is already wrapped


如何在防止默认行为的同时监视方法?

存根支持监视的所有方法。不要制造间谍。

好极了,谢谢你。从文档中:
除了可以用来改变存根行为的方法之外,它们还支持完整的测试间谍API。
感谢匿名投票!