Asp.net mvc 使用自定义基类为视图编写单元测试

Asp.net mvc 使用自定义基类为视图编写单元测试,asp.net-mvc,asp.net-mvc-3,razor,viewbag,Asp.net Mvc,Asp.net Mvc 3,Razor,Viewbag,我们有一个MVC3RazorWeb项目,其中我们为视图指定了一个自定义基类。在这个基本视图类的InitializePage方法中,我们正在进行一些初始化,并将一个对象保存到ViewBag中。这些信息可以作为布局页面的“模型”。这里的一条信息是在布局页面中呈现的结构化上下文菜单。此菜单上的项目可以更改,具体取决于登录到我们网站的用户 我的问题是如何对在基本视图类中运行的代码进行单元测试。由于此代码仅在呈现视图时运行,除了模拟控制器上下文以执行视图之外,我还有其他选择吗?我在互联网上看到了一些这样做

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

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


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

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

如果您可以用一些源代码来修饰您的问题,那就太好了。例如,您正在尝试进行单元测试的相关源代码将非常棒。