【发布时间】:2018-01-26 04:51:15
【问题描述】:
我有一个类似这样的 javascript 方法:
someMethod=function(){
somePromise.run().then(()=>{
//do success stuff
}).catch((err)=>{
//do fail stuff
registerError(err);
});
}
我想确保错误被注册,所以我设置了以下测试。
it('should register error', ()=>{
somePromise = {
run: sinon.stub
};
registerError = sinon.stub;
somePromise.returns(Promise.reject({err: 'foo'}));
someMethod();
assert(registerError.calledWith({err: 'foo'}));
});
此测试失败,因为断言在 someMethod 中的承诺完成之前触发。我可以更新 someMethod 以返回一个承诺,但这对我来说很可疑。欢迎任何意见,谢谢!
【问题讨论】:
标签: javascript node.js unit-testing sinon