【问题标题】:Angular - How to simulate an HttpErrorResponse?Angular - 如何模拟 HttpErrorResponse?
【发布时间】:2021-01-28 06:16:51
【问题描述】:

我正在尝试测试我的代码,了解我的应用程序将如何处理特定的 HttpErrorResponse(特别是 302 重定向)。 有没有办法让我在我的应用程序上模拟一个请求,以便它抛出一种 HttpErrorResponse? 我不是在谈论单元测试,而是在我的应用程序的实际运行时执行中。

【问题讨论】:

    标签: html angular error-handling httpresponse angular-httpclient


    【解决方案1】:

    是的,您可以在您的可观察到的任何消息中抛出错误

        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 块

    【讨论】:

      【解决方案2】:

      如果您想在不修改后端的情况下测试这种响应,您可以尝试使用量角器或Cypress 进行一些 e2e 测试,它可以模拟您服务器的响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 2019-12-03
        • 2019-01-06
        • 2018-06-27
        • 2017-04-12
        • 2023-03-20
        相关资源
        最近更新 更多