如何解决在 Jasmine/Karma 测试中使用 mockError 时,apollo-angular 抛出错误
多年来,我一直在测试此类查询/突变的错误,但就在刚才,我遇到了一个我似乎无法弄清楚的错误。
当我调用这个测试时,Apollo 为我所做的 errorMock 抛出了一个错误。有没有人遇到过这个错误?
这很有趣,因为其他使用相同逻辑的测试都可以正常工作,就这个
it('should call errorHandler if getThirdPartyCompanies requests returns an error',fakeAsync(() => {
const spyOnHandleError = spyOn(component['errorHandlerService'],'handleError');
component.getThirdPartyCompanies();
const op = controller.expectOne(thirdPartyCouriersGraphqlModel);
op.flush(
{
errors: [new GraphQLError('a')]
}
);
controller.verify();
tick(100);
flush();
expect(spyOnHandleError).toHaveBeenCalled();
}));
关于为什么会发生这种情况的任何提示?
提前致谢!
解决方法
所以....
public getThirdPartyCompanies(): void {
console.log('getThirdPartyCompanies');
this.courierService.getThirdPartyCourierList(this.cityId)
.pipe(takeUntil(this.subscriptionDestroyer))
.subscribe((req) => {
this.thirdPartyCourierList = req.data.thirdPartyCourierCompanies;
this.loadingThirdies = false;
}
),err =>{
this.errorHandlerService.handleError(err);
this.loadingThirdies = false;
};
}
这是我用于通话的代码。请注意,我在错误调用之前关闭了 observable。
我所要做的就是:
},err =>{
this.errorHandlerService.handleError(err);
this.loadingThirdies = false;
};
});
以正确的方式关闭订阅,我就可以正常工作了...
对于任何有同样问题的人来说,这就是答案!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。