.NET Core 6.0: тест xUnit не пройден, но все в порядке! Я получаю неожиданный результат (NotFoundResult вместо NoContentC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET Core 6.0: тест xUnit не пройден, но все в порядке! Я получаю неожиданный результат (NotFoundResult вместо NoContent

Сообщение Anonymous »

Я работаю над веб-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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»