使用Rhino Mocks在ASP.NET MVC2中模拟控制器操作

时间:2011-01-01 00:02:21

标签: asp.net-mvc unit-testing asp.net-mvc-2 rhino-mocks

我无法理解如何有效地为一个简单的控制器操作构建模拟单元测试,该操作创建了一个viewmodel实例并将其传递给视图。

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

        return View(viewModel);
    }

有人可以告诉我如何为控制器操作编写单元测试,以确保操作生成viewmodel类的实例,并将其指定为视图的模型。

当然,我理解TDD说我应该首先编写测试,然后构建上面的内容,但是我无法掌握基础知识。您传递的任何代码的解释也会很棒。感谢

1 个答案:

答案 0 :(得分:1)

这只是一个简单的例子,说明你可以做些什么来测试这个:

    [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,然后断言它不为null。

希望这有帮助。