Контролирующие действия контроллера в ASP.NET MVC2 с Rhino Mocks - PullRequest
1 голос
/ 01 января 2011

У меня возникают проблемы с пониманием того, как я могу эффективно и результативно построить модульный тест для простого действия контроллера, который создает экземпляр модели представления и передает его в представление.

    public ActionResult Index()
    {
        IndexViewModel viewModel = new IndexViewModel();

        return View(viewModel);
    }

Может кто-нибудь пожалуйстадайте мне идею, как написать модульный тест для действия контроллера, который бы гарантировал, что действие генерирует экземпляр класса viewmodel, и назначает его в качестве модели для представления.

Я понимаю, конечно, что TDD говорит, что я должен сначала написать тест, а затем построить выше, но у меня возникли проблемы с пониманием основ.Объяснение любого кода, который вы передаете, тоже было бы здорово.Спасибо

1 Ответ

1 голос
/ 05 января 2011

Это лишь краткий пример того, что вы можете сделать, чтобы проверить это:

    [TestMethod]
    public void IndexGetMethodReturnsIndexViewModel()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;
        var viewModel = result.ViewData.Model as IndexViewModel;

        // Assert
        Assert.IsNotNull(viewModel);
    }

Итак, вы вызываете метод Index на контроллере, обращаетесь к viewModel и убедитесь, что он имеет тип IndexViewModel итогда вы утверждаете, что оно не равно нулю.

Надеюсь, это поможет.

...