我的问题是由于我在MVC中的n00bness,但我正在尝试为使用T4MVC生成的控制器中的函数编写测试。所以我想我也会使用MvcContrib.TestHelper。
我新建一个TestControllerBuilder和我的控制器,当我尝试调用InitializeController时,我得到一个例外:
System.TypeInitializationException:'Images'的类型初始值设定项引发了异常。 ---> System.Web.HttpException:应用程序相对虚拟路径'〜/ Content / Images / add.gif'不能绝对,因为应用程序的路径未知。
好的,它正在尝试获取图像并且它们不在测试可执行文件的相对路径中......我该怎么说?
我尝试了这个T4MVCHelpers.ProcessVirtualPath()但是我在那里尝试的几乎所有东西在调用VirtualPathUtility.ToAbsolute()方法时都会抛出错误。
我毫不怀疑我做错了什么。我的理解是错误的,TestControllerBuiler会为我设置我的模拟HTTPContexts吗?我可以告诉它忽略图像的东西吗?
请帮助n00b了。关于如何使用TestHelper和ProcessVirtualPath的一个简单示例将非常棒。
更新
对于那些得到类似错误的人,我的理由是因为httpcontext正在控制器构造函数中使用。在我的情况下,在生成的强类型图像路径T4MVC上出错。
答案 0 :(得分:0)
您可以通过设置ProcessVirtualPath委托来为T4MVC提供自己的方法。
下面的匿名方法保留了原始实现的精神。
T4MVCHelpers.ProcessVirtualPath = p => VirtualPathUtility.ToAbsolute(p, "/App");