第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Moq在ASP.NET MVC中模擬HttpContext?

如何使用Moq在ASP.NET MVC中模擬HttpContext?

搖曳的薔薇 2019-07-27 10:04:27
如何使用Moq在ASP.NET MVC中模擬HttpContext?[TestMethod]public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist(){     var context = new Mock<HttpContextBase>();     var request = new Mock<HttpRequestBase>();     context        .Setup(c => c.Request)         .Returns(request.Object);     HomeController controller = new HomeController();     controller.HttpContext = context; //Here I am getting an error (read only).     ...  }我的基本控制器有一個重寫的Initialize,它得到了這個requestContext。我試圖通過這個,但我沒有做正確的事情。protected override void Initialize(System.Web.Routing.RequestContext requestContext){     base.Initialize(requestContext);}在哪里可以獲得有關(guān)使用Moq模擬我的RequestContext和HttpContext的更多信息?我正在嘗試模擬cookie和一般上下文。
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊

HttpContext是只讀的,但它實(shí)際上是從您可以設(shè)置的ControllerContext派生的。

 controller.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller );

查看完整回答
反對 回復(fù) 2019-07-27
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊

創(chuàng)建一個請求,響應(yīng)并將它們都放到HttpContext中:


HttpRequest httpRequest = new HttpRequest("", "http://mySomething/", "");

StringWriter stringWriter = new StringWriter();

HttpResponse httpResponse = new HttpResponse(stringWriter);

HttpContext httpContextMock = new HttpContext(httpRequest, httpResponse);


查看完整回答
反對 回復(fù) 2019-07-27
?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊

它對我有用,在這里我在為下面的代碼編寫測試用例時遇到了問題:

 var currentUrl = Request.Url.AbsoluteUri;

以下是解決問題的方法

HomeController controller = new HomeController();//Mock Request.Url.AbsoluteUri HttpRequest httpRequest = new HttpRequest("", "http://mySomething", "");StringWriter stringWriter = new StringWriter();HttpResponse httpResponse = new HttpResponse(stringWriter);HttpContext httpContextMock = new HttpContext(httpRequest, httpResponse);controller.ControllerContext = new ControllerContext(new HttpContextWrapper(httpContextMock), new RouteData(), controller);

可能對其他人有幫助。


查看完整回答
反對 回復(fù) 2019-07-27
  • 3 回答
  • 0 關(guān)注
  • 807 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號