首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sinon spy for function不工作

Sinon spy for function不工作
EN

Stack Overflow用户
提问于 2016-07-03 00:28:32
回答 1查看 1.2K关注 0票数 2

根据sinon.js的文档,我可以这样做:var spy = sinon.spy(myFunc);,但它不工作。这是我的努力:

代码语言:javascript
复制
var sinon = require("sinon");

describe('check bar calling', function(){
  it('should call bar once', function() {
    var barSpy = sinon.spy(bar);

    foo("aaa");

    barSpy.restore();
    sinon.assert.calledOnce(barSpy);
  });
});

function foo(arg) {
  console.log("Hello from foo " + arg);
  bar(arg);
}

function bar(arg) {
  console.log("Hellof from bar " + arg);
}
EN

回答 1

Stack Overflow用户

发布于 2016-07-03 00:32:06

Sinon包装了调用,它不会修补所有引用。返回值是一个包装函数,您可以对其进行断言。它记录对它的所有调用,而不是它包装的函数。修改foo,使调用者提供一个函数,允许注入间谍,并允许对间谍进行调用。

代码语言:javascript
复制
var sinon = require("sinon");

describe('check bar calling', function(){
  it('should call bar once', function() {
    var barSpy = sinon.spy(bar);

    foo("aaa", barSpy);

    barSpy.restore();
    sinon.assert.calledOnce(barSpy);
  });
});

function foo(arg, barFn) {
  console.log("Hello from foo " + arg);
  barFn(arg);
}

function bar(arg) {
  console.log("Hellof from bar " + arg);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38162229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档