我正在使用以下代码测试函数:
return new Promise((ok, fail) => {
this.repository.findById(id, (error, result) => {
if (error)
return fail(error);
ok(result);
});
});
我想测试失败的路径,即当findById
方法调用带有错误的回调时。我使用sinon为repository
及其findById
方法生成存根,但我不知道如何强制存根使用所需参数调用回调
之前有人这样做过吗?
由于
答案 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);
});