我有一个控制器操作,它使用Global.asax上的静态变量,该变量由Application_Start填充....
这是简单的示例代码
string url = VirtualPathUtility.Combine(MvcApplication.BaseU, "/geturl");
但当然在我测试控制器的测试中,MvcApplication.BaseU为NULL
因为它没有被global.asax
中的Application_Start调用和填充正确执行此操作的最佳选择是什么?
任何想法都非常有用
答案 0 :(得分:1)
我有一个控制器操作,它使用Global.asax上的静态变量 由Application_Start
填写
那很糟糕。您可以重构代码,以便控制器将此值作为构造函数参数(构造函数注入),然后配置DI框架以传递正确的值。现在在你的单元测试中,通过一个模拟的测试值就可以了。