我目前正在使用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
使用不同的模拟框架可以更轻松地实现这一目标吗?
答案 0 :(得分:0)
您确定要以这种方式获取视图页面,因为它没有模型等,因为它尚未完全设置。
更典型的是,如果你想检查它,你会测试控制器并检查它的返回值,它将包含渲染的html。
假设你真的想对它进行单元测试,那么我的代码看不出任何内在错误。你可以试试Moq而不是我使用的Rhino。
如果没有Rhino如何处理抽象类,这个问题也可能与您的问题有关:
答案 1 :(得分:0)
斯科特·汉塞尔曼(Scott Hanselman)在这里用犀牛嘲笑MVC 3课程有一篇很好的文章:
http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx