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);