Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc c#(asp.net mvc):测试使用global.asax变量的控制器?_Asp.net Mvc_Unit Testing - Fatal编程技术网

Asp.net mvc c#(asp.net mvc):测试使用global.asax变量的控制器?

Asp.net mvc c#(asp.net mvc):测试使用global.asax变量的控制器?,asp.net-mvc,unit-testing,Asp.net Mvc,Unit Testing,我有一个控制器操作,它在Global.asax上使用一个静态变量,该变量由应用程序_Start…填充 下面是简单的示例代码 string url = VirtualPathUtility.Combine(MvcApplication.BaseU, "/geturl"); 当然,在测试控制器时,mvcapapplication.BaseU是空的 因为它不是由应用程序调用和填写的,所以从global.asax开始 正确执行此操作的最佳选项是什么 有什么好主意吗 我有一个控制器操作,它在Gl

我有一个控制器操作,它在Global.asax上使用一个静态变量,该变量由应用程序_Start…填充

下面是简单的示例代码

    string url = VirtualPathUtility.Combine(MvcApplication.BaseU, "/geturl");
当然,在测试控制器时,mvcapapplication.BaseU是空的

因为它不是由应用程序调用和填写的,所以从global.asax开始

正确执行此操作的最佳选项是什么

有什么好主意吗

我有一个控制器操作,它在Global.asax上使用一个静态变量 由应用程序_Start填写

那太糟糕了。您可以重构代码,以便控制器将此值作为构造函数参数(构造函数注入),然后配置DI框架以传递正确的值。现在,在单元测试中,只需为测试传递模拟值