MVC 3:如何模拟WebViewPage的实例<t>?</t>

时间:2011-10-21 01:56:09

标签: asp.net-mvc asp.net-mvc-3 unit-testing

我目前正在使用Rhino Mocks模拟框架。你如何使用Rhino Mocks或任何其他模拟框架模拟WebViewPageBase及其模型的实例?当我运行以下单元测试时,尝试访问WebViewPageBase.Model属性时会抛出异常。

        var repo = new Rhino.Mocks.MockRepository();

        System.Web.Mvc.WebViewPage<IEnumerable<Tuple<string>>> page = repo.DynamicMock<System.Web.Mvc.WebViewPage<IEnumerable<Tuple<string>>>>();

        Assert.IsNotNull(page.Model);//exception thrown, not a fail on Assert

使用不同的模拟框架可以更轻松地实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

您确定要以这种方式获取视图页面,因为它没有模型等,因为它尚未完全设置。

更典型的是,如果你想检查它,你会测试控制器并检查它的返回值,它将包含渲染的html。

假设你真的想对它进行单元测试,那么我的代码看不出任何内在错误。你可以试试Moq而不是我使用的Rhino。

如果没有Rhino如何处理抽象类,这个问题也可能与您的问题有关:

Mock abstract class default behaviour with Rhino

答案 1 :(得分:0)

斯科特·汉塞尔曼(Scott Hanselman)在这里用犀牛嘲笑MVC 3课程有一篇很好的文章:

http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx