Asp.net-Mvc

ASP/NET MVC:帶會話的測試控制器?嘲諷?

  • October 6, 2008

我在這裡閱讀了一些答案:測試視圖和控制器以及模擬,但我仍然無法弄清楚如何測試讀取和設置會話值(或任何其他基於上下文的變數)的 ASP.NET MVC 控制器。如何為我的測試方法提供(會話)上下文?是在嘲諷答案嗎?有人有例子嗎?基本上,我想在呼叫控制器方法並讓控制器使用該會話之前偽造一個會話。有任何想法嗎?

查看 Stephen Walther 關於偽造控制器上下文的文章:

ASP.NET MVC 技巧 #12 – 偽造控制器上下文

[TestMethod]
public void TestSessionState()
{
   // Create controller
   var controller = new HomeController();


   // Create fake Controller Context
   var sessionItems = new SessionStateItemCollection();
   sessionItems["item1"] = "wow!";
   controller.ControllerContext = new FakeControllerContext(controller, sessionItems);
   var result = controller.TestSession() as ViewResult;


   // Assert
   Assert.AreEqual("wow!", result.ViewData["item1"]);

   // Assert
   Assert.AreEqual("cool!", controller.HttpContext.Session["item2"]);
}

引用自:https://stackoverflow.com/questions/176347