在Angular 5测试中,如何模拟http错误?

Zan*_*cat 3 angular

我在Angular 5中进行单元测试.

使用新的http模块,我知道我可以通过使用flush方法来模拟响应数据HttpTestingController,但是我如何模拟错误(我想测试我的错误处理程序)?

mer*_*ike 8

使用error而不是flush

httpTestingController.expectOne(url).error(errorEvent);
Run Code Online (Sandbox Code Playgroud)

或者将状态传递给flush:

httpTestingController.expectOne(url).flush(null, {status: 400, statusText: "Bad Request"});
Run Code Online (Sandbox Code Playgroud)