诗乃:强制回拨电话

时间:2017-04-28 12:03:41

标签: node.js sinon

我正在使用以下代码测试函数:

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

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

之前有人这样做过吗?

由于

2 个答案:

答案 0 :(得分:6)

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

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

请参阅Sinon 2文档:http://sinonjs.org/releases/v2.1.0/stubs/

答案 1 :(得分:0)

一个更通用的答案在这里: 每次我必须对回调进行存根时,我都会这样做

const stubFindId = sinon.stub(repository, 'findById');    
stubGetitem.callsFake((value: string, callback: any) => {
      return callback(true, false);
    });