2012-01-20 40 views
1

我们有一个MVC 3 Razor Web项目,我们为我们的视图指定了一个自定义基类。在这个基本视图类的InitializePage方法中,我们正在做一些初始化并将一个对象保存到ViewBag中。这些信息可以作为我们布局页面的“模型”。这里的一条信息是在布局页面中呈现的结构化上下文菜单。此菜单上的项目可能会更改,具体取决于登录到我们网站的用户。使用自定义基类为视图编写单元测试

我的问题是我如何可以单元测试这个代码在基础视图类中运行。由于此代码仅在呈现视图时运行,除了模拟控制器上下文以执行视图之外,还有其他选择吗?我在互联网上看到了一些关于这样做的示例,看起来它比它的价值更麻烦。

任何想法都会有所帮助。谢谢!

+4

如果你可以用一些源代码来装饰你的问题,那将会很棒。例如,你正在尝试进行单元测试的相关源代码会很棒。 –

回答

0

对我来说,显而易见的解决方案是将该代码(或至少它的大部分)提取到另一个类的方法中。然后,您的View类应该简单地将适当的值传递给该方法,使其InitializePage方法非常简单,无需进行单元测试。您可以单独测试独立于View类的方法。