无法使用 RestSharp 声明错误请求 [HTTP 400 错误]。投掷 System.Net.Http.HttpRequestException

Cannot assert Bad Request [HTTP 400 error] using RestSharp. Throws System.Net.Http.HttpRequestException

我使用 RestSharp 编写了以下测试,预期结果是 return 错误 400 以及一些 Json 格式的错误消息。

但以下测试在 await client.PostAsync(request) 时失败并抛出 "System.Net.Http.HttpRequestException :请​​求失败,状态代码为 BadRequest" 且未到达断言语句。

我使用 Fiddler 验证了我的请求并且响应按预期工作。

如果有任何解决此问题的建议,我们将不胜感激。谢谢!

    [Test]
    public async Task Test1Async()
    {
        var jsonData = json;
        var client = new RestClient(endpoint);
        var request = new RestRequest();
        request.AddStringBody(jsonData, ContentType.Json);
        var response = await client.PostAsync(request);
        Assert.AreEqual(400, response.StatusCode);
    }

有效的解决方案。谢谢 Nicolas VERHELST...

    [Test]
    public async Task Test1Async()
    {
        var jsonData = json;
        var client = new RestClient(endpoint);
        var request = new RestRequest();
        request.AddStringBody(jsonData, ContentType.Json);
        var response = await client.ExecutePostAsync(request);
        Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
    }

如果您担心当状态不好(例如 400)时方​​法 PostAsync(..) 会抛出,您可以使用 ExecutePostAsync(..)

请参阅此处的 table:https://restsharp.dev/error-handling.html