API тестирования интеграции, имеющие свободную проверку

У меня есть 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"
  ]
}

1 ответ

Решение

Учитывая предоставленный пример 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);
Другие вопросы по тегам