2012-09-10 91 views
3

我想爲ASP.NET MVC應用程序創建Nunit測試用例。如果ASP.NET使用Request.QueryString或Request.Url。那麼單元測試用例將返回空引用異常,因爲如果控件僅來自UI,Request.querystring將返回值。使用單元測試時,Request.Querystring爲空

所以你可以請幫助這個創建一個MVC控制器使用Httpcontext.Request屬性的單元測試。

回答

4

單元測試運行的HttpContext的,因此您可能需要模擬的HttpContext或更改你的架構來解決該問題,這方面的一個例子如下之外:

http://volaresystems.com/Blog/post/Dont-mock-HttpContext.aspx

+0

謝謝你你的更新Burt。你能讓我知道命名空間來使用模擬概念嗎? – Melody

+0

請仔細閱讀本文,我將深入探討以下主題:http://www.simple-talk.com/dotnet/asp.net/a-testing-perspective-of-controllers- and-orchestrators/ – Burt

+0

Hi Burt, 感謝您的更新。我的控制器示例代碼如下。 ** public ActionResults index() if(Request.Url.ToString()==「www.abc.com」) { return RedirecttoAction(「About」); } return View(); } ** 單元測試代碼如下: ** [測試] public void testIndex(){ SampleController controller = new SampleController(); ActionResult result = controller.Index()as ViewResult;} ** 當控件轉到Request.URL時,會引發空引用異常。 **您可以讓我知道如何初始化來自單元測試項目的Request.URL或Request.QueryString值嗎?** – Melody

相關問題