Создание простых проблем модульного теста в приложении MVC3 - PullRequest
1 голос
/ 05 января 2012

Вот модульный тест:

[TestFixture]
public class HomeControllerTests
{
    [Test]
    public void Index_GET_Asks_For_Index_View()
    {
        HomeController controller = new HomeController();
        ViewResult result = controller.Index();
        Assert.AreEqual("Index", result.ViewName);
    }
}

По сути, я хочу убедиться, что при посещении метода действия Index я вызываю правильное представление. Однако тест не пройден, и я не знаю, почему.

------ Тест запущен: Сборка: Demo.Tests.dll ------

Test 'Demo.Tests.HomeControllerTests.Index_GET_Asks_For_Index_View' не удалось:

Ожидаемая длина строки 5, но была 0. Строки отличаются с индексом 0.

Ожидается: «Индекс»

Но было: ----------- ^ HomeControllerTests.cs (19,0): в Demo.Tests.HomeControllerTests.Index_GET_Asks_For_Index_View ()

Вот фактический код контроллера:

public ViewResult Index()
{
    ViewBag.Message = "This is just a demo.";
    return View();
}

1 Ответ

2 голосов
/ 05 января 2012

См. Эту ссылку с пустым вызовом View () .Вот цитата из этой статьи MSDN:

Эта перегрузка метода класса View возвращает объект ViewResult, который имеет empty ViewName свойство . Если вы пишете модульные тесты для действий контроллера, учтите пустое свойство ViewName для модульных тестов, которые не принимают имя строкового представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...