如何获取带有错误请求状态代码的详细信息(自定义错误消息)?这样我就可以对其进行断言

Posted

技术标签:

【中文标题】如何获取带有错误请求状态代码的详细信息(自定义错误消息)?这样我就可以对其进行断言【英文标题】:How to I get the detail (custom error message) returned with a bad request status code? So that I can do an ASSERT on it 【发布时间】:2021-11-28 16:00:34 【问题描述】:

您好,我正在设置一些集成测试(使用 Xunit),我想运行一个 Assert 来检查是否返回了正确的自定义错误消息。

这是我需要获取的数据在以下响应中,请参见图片... 详细信息:“用户名必须是唯一的”不要担心这条消息稍后会被修改为更有用,我只是想让它先工作

Required Info

这是当前代码...

        //Act

        response = await _httpClient.PostAsync("CompleteUserSetup", formContent);

        //Assert

        Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode) ; //Bad request should be returned
        //TODO: check custom error message is correct

所以希望...

ASSERT.Equal("用户名必须唯一",一些代码从响应中获取详细信息)

【问题讨论】:

这能回答你的问题吗? Getting content/message from HttpResponseMessage @Fabio 嗨,谢谢你的建议,这不是我所需要的,但引导我去弄清楚:-D 【参考方案1】:

好的,所以我想出了如何获取我需要的数据。我只需要将结果转换为一个对象,然后我就可以提取我需要的详细数据。

var resultModel = await System.Text.Json.JsonSerializer.DeserializeAsync<Result>(response.Content.ReadAsStream(), JsonSerializerHelper.DefaultDeserialisationOptions);

var errorMessage = resultModel.detail;

【讨论】:

以上是关于如何获取带有错误请求状态代码的详细信息(自定义错误消息)?这样我就可以对其进行断言的主要内容,如果未能解决你的问题,请参考以下文章