我正在用这段代码测试一个函数:
return new Promise((ok, fail) => {
this.repository.findById(id, (error, result) => {
if (error)
return fail(error);
ok(result);
});
});
我想测试失败的路径,即当findById
方法调用带有错误的回调时。我正在使用sinon为我的repository
及其findById
方法生成存根,但我不知道如何强制存根使用所需参数调用回调
以前有人这样做过吗?
谢谢
使用Sinon 2,您可以使用存根的callsFake
方法:
sinon.stub(repository, 'findById').callsFake((id, callback) =>
callback(new Error('oops'))
);
这里有一个更通用的答案:每次我必须存根回调时,我就是这样做的
const stubFindId = sinon.stub(repository, 'findById');
stubGetitem.callsFake((value: string, callback: any) => {
return callback(true, false);
});