Тестирование действия Get с моделью просмотра
-
12-10-2019 - |
Вопрос
У меня есть следующее действие контроллера:
public ActionResult Edit(int id)
{
var news = newsRepository.GetNewsByID(id);
Mapper.CreateMap<News, NewsEditModel>();
var newsEditModel =
(NewsEditModel)Mapper.Map(news, typeof(News), typeof(NewsEditModel));
return View(newsEditModel);
}
И соответствующий тест:
[Test]
public void Edit_should_render_view()
{
// Arrange
var id = 1;
var newsEditModel = new NewsEditModel();
// Act
var actual = sut.Edit(id);
// Assert
actual
.AssertViewRendered()
.WithViewData<NewsEditModel>()
.ShouldBe(newsEditModel);
}
В графическом интерфейсе NUNIT я получаю следующую ошибку:
Myproject.web.unittests.controllers.newscontrollertests.edit_should_render_view: mvccontrib.testhelper.assertionExcept
Я не знаю, как написать соответствующий модульный тест. Кто -нибудь может мне помочь?
Решение
Ваш тест сравнивает два разных случая NewsEditModel
- Один экземпляр, который вы создаете в своем тестовом коде, и другой, который создается в методе действия.
Если вы хотите изучить значения свойств модели как часть вашего теста, вы можете сделать это:
var model = actual
.AssertViewRendered()
.WithViewData<NewsEditModel>();
// Check that model is not null
Assert.That(model, Is.Not.Null);
// Check that model ID is same as passed into action method
Assert.That(model.Id, Is.EqualTo(1));
// or alternatively ...
model.Id.ShouldBe(1);
Не связан с StackOverflow