与单元测试同时运行MVC应用程序

时间:2019-03-05 11:02:56

标签: c# model-view-controller httprequest simulate controller-factory

我有一些Http请求捕获,我想针对我的MVC应用程序进行模拟,以最接近真实环境的方式对其进行测试。但是,为了能够在运行单元测试时调试应用程序,必须与测试同时运行应用程序。有办法吗?

P.S。我尝试采用DefaultControllerFactory路径,并以与MVC框架处理Http请求的典型方式相同的方式进行操作,但未能使HttpRequestHttpContext,{ {1}},RequestContext。很多组件!因此,在这方面的任何帮助也将不胜感激。

这是我用于MVC路径的代码,

RouteData

此代码在 var context = new HttpContextWrapper(HttpContext.Current); RouteData routeData = new RouteData(); routeData.Values.Add("{action}", "ActionName"); var requestContext = new RequestContext(context, routeData); DefaultControllerFactory factory = new DefaultControllerFactory(); IController controller = factory.CreateController(requestContext, "HomeController"); // Set Form data of the request controller.Execute(requestContext); 方法上引发异常,表明该方法无法在预初始化阶段调用。此外,CreateController的{​​{1}}属性为空,因此我无法为其Form设置任何值。我试图通过在另一篇文章中建议的以下方式将以下Request添加到HttpContext来解决该异常,但是仍然遇到相同的异常。

AppSettings

此外,由于这是单元测试,并且没有可用的当前app.config,因此我使用以下方法进行伪造,然后在运行此代码之前设置当前的<add key="enableSimpleMembership" value="false"/> <add key="autoFormsAuthentication" value="false"/>

HttpContext

0 个答案:

没有答案