如何获取带有错误请求状态代码的详细信息(自定义错误消息)?这样我就可以对其进行断言
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;
【讨论】:
以上是关于如何获取带有错误请求状态代码的详细信息(自定义错误消息)?这样我就可以对其进行断言的主要内容,如果未能解决你的问题,请参考以下文章
当请求 API 的自定义标头错误时,将 http 状态代码设置为 417