Тестирование ASP.NET MVC View Model

Я использую Nunit и Moq для тестирования моего решения asp.net mvc. Является ли это хорошим способом проверить, что модель, переданная в представление, является правильным объектом/коллекцией?

[Test]
public void Start_Page_Should_Display_Posts()
{
    var posts = new List<Post> {new Post {Id = 1}, new Post {Id = 2}};

    var mock = new Mock<IRepository>();
    mock.Setup(x => x.FindAll<Post>()).Returns(posts.AsQueryable());

    var controller = new PostsController(mock.Object);
    var result = controller.Index(null) as ViewResult;
    var viewModel = controller.ViewData.Model as IEnumerable<Post>;

    Assert.IsNotNull(result);
    Assert.IsTrue(viewModel.Count() == mock.Object.FindAll<Post>().Count());
}

Я понимаю, что этот тип тестов основывается, но, надеюсь, вы поймете мою мысль. Могу ли я доверять этому тесту?

В настоящее время я немного устал, поэтому не стесняйтесь просить о разработке.

Спасибо

Ответы

Ответ 1

Нет, он не тестирует (только?) структуру. Он проверяет, что выполнение результатов действия в ViewModel состоит из не-нулевой коллекции из того же подсчета, что и в макете.

Вы можете упростить последнее условие в

Assert.IsTrue(viewModel.Count() == posts.Count);

или даже

Assert.IsTrue(viewModel.Count() == 2);

Я имею в виду это unit test, это нормально, чтобы там были какие-то жестко закодированные значения.