У меня есть API, написанный на .NET Core и использующий xUnit для их тестирования.
У меня есть метод в API:
[HttpDelete("api/{id}")]
public async Task<IActionResult> DeleteUserId(string id)
{
try
{
//deleting from db
}
catch (Exception ex)
{
return StatusCode(500, ex.Message);
}
}
Я хочу написать модульный тест, когда нулевой / пустой идентификатор передан этому методу.
У меня есть тестовый пример:
[Fact]
public void DeleteUserId_Test()
{
//populate db and controller here
var response= _myController.DeleteUserId(""); //trying to pass empty id here
// Assert
Assert.IsType<OkObjectResult>(response);
}
Как проверить, что код состояния 500 возвращается после вызова метода моего контроллера здесь. Что-то вроде
Assert.Equal(500, response.StatusCode);
При отладке я вижу, что ответ имеет тип возвращаемого результата (Microsoft.AspNetCore.Mvc.ObjectResult), который имеет StatusCode
как 500.
Но когда я пытаюсь сделать это:
response.StatusCode
выдает ошибку:
«IActionResult» не содержит определения «StatusCode», и метод расширения «StatusCode», принимающий первый аргумент типа «IActionResult», не может быть найден (отсутствует директива using или ссылка на сборку?)
Как мне решить эту проблему?