诗乃:强制回拨电话

问题描述 投票:3回答:2

我正在用这段代码测试一个函数:

return new Promise((ok, fail) => {
  this.repository.findById(id, (error, result) => {
    if (error)
      return fail(error);
    ok(result);
  });
});

我想测试失败的路径,即当findById方法调用带有错误的回调时。我正在使用sinon为我的repository及其findById方法生成存根,但我不知道如何强制存根使用所需参数调用回调

以前有人这样做过吗?

谢谢

node.js sinon
2个回答
7
投票

使用Sinon 2,您可以使用存根的callsFake方法:

sinon.stub(repository, 'findById').callsFake((id, callback) =>
    callback(new Error('oops'))
);

另见2文档:http://sinonjs.org/releases/v2.1.0/stubs/


0
投票

这里有一个更通用的答案:每次我必须存根回调时,我就是这样做的

const stubFindId = sinon.stub(repository, 'findById');    
stubGetitem.callsFake((value: string, callback: any) => {
      return callback(true, false);
    });
© www.soinside.com 2019 - 2024. All rights reserved.