我的问题是由于我在 MVC 领域的 n00bness,但我正在尝试为使用 T4MVC 生成的控制器中的函数编写测试。所以我想我也会使用 MvcContrib.TestHelper 。
我新建了一个 TestControllerBuilder 和我的控制器,当我尝试在其上调用 InitializeController 时出现异常:
System.TypeInitializationException:“图像”的类型初始化程序引发异常。---> System.Web.HttpException: 应用程序相对虚拟路径 '~/Content/Images/add.gif' 不能设为绝对路径,因为应用程序的路径未知。
好的,它正在尝试获取图像并且它们不在测试可执行文件的相对路径中......我该如何告诉它?
我试过这个 T4MVCHelpers.ProcessVirtualPath() 但是当它调用 VirtualPathUtility.ToAbsolute() 方法时,我在那里尝试的几乎所有东西都会引发错误。
我毫不怀疑我做错了什么。我对 TestControllerBuiler 将为我设置我的模拟 HTTPContexts 的理解是否不正确?我可以告诉它忽略图像内容吗?
请帮助n00b。一个关于如何使用 TestHelper 和 ProcessVirtualPath 的简单示例会很棒。
更新
对于那些遇到类似错误的人,我的原因是因为在控制器构造函数中使用了 httpcontext。就我而言,它在生成的强类型图像路径 T4MVC 上出错。