ASP.net MVC Mock Context(上下文)

ASP.net MVC Mock Context(上下文)

 var fakeContext = new FakeControllerContext(controller, new NameValueCollection(), new NameValueCollection());


          controller.ControllerContext = fakeContext;

            controller.Request.QueryString["s"] = ""


或:

 var controllerContext = new FakeControllerContext(controller,

                new RouteData(), "", "", new string[] { }, new NameValueCollection(),

                new NameValueCollection(), new HttpCookieCollection(), new System.Web.SessionState.SessionStateItemCollection());

            controller.ControllerContext = controllerContext; 

如果要访问Request[""],则加上:

 var mockRequst = new Mock<HttpRequestBase>();


            mockRequst.ExpectGet(r => r.ServerVariables).Returns(new NameValueCollection());

            mockRequst.ExpectGet(r => r.QueryString).Returns(new NameValueCollection());

            mockRequst.ExpectGet(r => r.Form).Returns(new NameValueCollection());

            mockRequst.ExpectGet(r => r.Cookies).Returns(new HttpCookieCollection());


            var mockHttpContext = new Mock<HttpContextBase>();

            mockHttpContext.ExpectGet(hc => hc.Request).Returns(mockRequst.Object);

            controller.ControllerContext.HttpContext = mockHttpContext.Object;


namespace MvcFakes 


在 BFA项目BFA.Presentation.Impl.Test.BuyerCompanyControllerTest.AjaxPartialManagementReturnExpectWhenOnDefault()用到

 下载:MvcFakes.rar

原文地址:https://www.cnblogs.com/ycdx2001/p/1429111.html