集成测试 api 具有流畅的验证

integration testing api having fluent validation

我有 API 使用 FluentValidations。

我正在编写集成测试并想断言错误的请求响应包含错误字段名称和消息。我想检查字段名和消息并确保它们与从 fluentvalidations 返回的相同。我收到一个充满验证错误的 json 响应,但不确定我应该反序列化到哪个对象中。

response.StatusCode.Should().Be(HttpStatusCode.BadRequest);

var result = JsonConvert.DeserializeObject<?>(await response.Content.ReadAsStringAsync());
result.Should().BeOfType<?>();
result.Should().NotBeNull();
result.Should().HaveCount(something);

示例响应是流利的验证响应

{
  "Name": [
    "Name is required.",
    "Name length cannot be more that 255 chars"
  ],
  "ListTypeId": [
    "Invalid listtypeid"
  ],
  "PartyRoleId": [
    "Invalid partyroleid"
  ]
}

鉴于提供的 JSON 示例,IDictionary<string,string[]> 应该能够满足该模型

response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
var json = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<IDictionary<string,string[]>>(json);
result.Should().BeOfType<IDictionary<string,string[]>>();
result.Should().NotBeNull();
result.Should().HaveCount(something);