Параметры ASP.NET Core WebAPi, TestHost и [FromBody] для тестирования интеграции

У меня есть основной веб-проект ASP.NET, который уже используется, и я хочу начать интеграционные тесты для автоматизации.

Контроллеры не имеют ничего, кроме основного:

[HttpPost]
public IActionResult Post([FromBody]string req)
{
    var dto = JsonConvert.DeserializeObject<DTO>(req);
    this.service.Create(dto);
    return Json(dto.Id);
}

Я использую Microsoft.AspNetCore.TestHost для создания клиента и сервера для запуска интеграционного тестирования, но затем, когда я хочу отправить полезную нагрузку через клиента, контроллер на WebApi не находит метку параметра как [FromBody]. Я уже проверял, что почтальон отправляет строку в теле метода post и работает правильно, так что я делаю не так?

[Fact]
public async Task Execute()
{
    // Act
    var dto = new DTO() { Field1 = "Filed1" ...};

    var json = JsonConvert.SerializeObject(dto);

    HttpContent payload = new StringContent(json, Encoding.UTF8, "application/json");

    var response = await client.PostAsync("/api/sample", payload);

    response.EnsureSuccessStatusCode();
}

0 ответов

Другие вопросы по тегам