Вопрос

У меня есть следующее действие контроллера:

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top