【发布时间】:2021-01-28 06:16:51
【问题描述】:
我正在尝试测试我的代码,了解我的应用程序将如何处理特定的 HttpErrorResponse(特别是 302 重定向)。 有没有办法让我在我的应用程序上模拟一个请求,以便它抛出一种 HttpErrorResponse? 我不是在谈论单元测试,而是在我的应用程序的实际运行时执行中。
【问题讨论】:
标签: html angular error-handling httpresponse angular-httpclient
我正在尝试测试我的代码,了解我的应用程序将如何处理特定的 HttpErrorResponse(特别是 302 重定向)。 有没有办法让我在我的应用程序上模拟一个请求,以便它抛出一种 HttpErrorResponse? 我不是在谈论单元测试,而是在我的应用程序的实际运行时执行中。
【问题讨论】:
标签: html angular error-handling httpresponse angular-httpclient
是的,您可以在您的可观察到的任何消息中抛出错误
const resp = this.http.post(`your api endpoint`);
return resp.pipe(
map((response: any) => {
throw throwError({
status: 302,
message: 'error message'
});
}),
catchError((err: HttpErrorResponse) => {
throw err
})
);
上面的代码将进入带有给定错误的 catchError 块
【讨论】:
如果您想在不修改后端的情况下测试这种响应,您可以尝试使用量角器或Cypress 进行一些 e2e 测试,它可以模拟您服务器的响应。
【讨论】: