Я работаю над веб-API .NET Core 6.0.
У меня есть метод DeleteComment, и я написал для него следующий тестовый метод:
[Fact]
public void DeleteComment_WithValidId_ReturnsNoContentResult()
{
var commentId = 1;
var result = _controller.DeleteComment(commentId);
Assert.IsType(result);
_mockCommentService.Verify(service => service.DeleteComment(commentId), Times.Once);
}
// УДАЛИТЬ: api/Comments/5
[HttpDelete("{id}")]
public IActionResult DeleteComment(int id)
{
var deletingComment = _commentService.GetComment(id);
if (deletingComment == null)
{
return NotFound();
}
_commentService.DeleteComment(id);
return NoContent();
}
Получить комментарий по идентификатору:
public Comment GetComment(int id)
{
return _comments.FirstOrDefault(comment => comment.Id == id);
}
Удалить комментарий:
public void DeleteComment(int id)
{
var commentToDelete = _comments.FirstOrDefault(comment => comment.Id == id);
if (commentToDelete != null)
{
_comments.Remove(commentToDelete);
}
}
Хотя он должен возвращать NoContentResult, он неожиданно возвращает NotFoundResult. Я протестировал API с тем же идентификатором комментария, используя Postman и точки останова, и он работает правильно. Есть ли ошибка в моем коде?
Вот результат выполнения теста DeleteComment_WithValidId_ReturnsNoContentResult()
Assert.IsType() Failure
Expected: Microsoft.AspNetCore.Mvc.NoContentResult
Actual: Microsoft.AspNetCore.Mvc.NotFoundResult
Подробнее здесь: https://stackoverflow.com/questions/764 ... ected-outp
.NET Core 6.0: тест xUnit не пройден, но все в порядке! Я получаю неожиданный результат (NotFoundResult вместо NoContent ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как вывести только один результат «Пройден/Не пройден» при повторном запуске теста?
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-