我已經看過以前的問題,但我找不到這個特定場景的答案:我正在使用TDD方法的ASP.NET MVC 3。在我的動作方法上,我使用了與ActionResult相對的返回類型的ViewResult。這很好,可以測試我的控制器。但是,我需要測試我的視圖模型以及我的控制器。我可以通過在ViewResultBase(實現ViewResult,而不是ActionResult)上使用Model屬性來進行模型測試,這非常愉快。ViewResult有沒有ActionResult RedirectToAction的等價物?
如果視圖模型爲null,那麼我想重定向到另一個動作。 ActionResult支持一個RedirectToAction方法。但是,ViewResult不會。我已經嘗試了View方法,但瀏覽器地址欄中的URL不會更改。此外,我甚至嘗試了經典的ASP.Net Response.Redirect(...),不出所料,我的單元測試抱怨Response對象沒有被填充。
那麼,我用什麼方法來實現ViewResult的ActionResult RedirectToAction的等價物?
您使用[MVC Contrib Test Helper](http://mvccontrib.codeplex.com/wikipage?title=TestHelper)嗎? –
不,只是標準的微軟單元測試套件VS 2010 Pro – CarneyCode
它會自動創建某些對象,如「HttpResponse」對象,因此您可以輕鬆地單元測試控制器。它可以幫助您不必根據自己的開發策略更改結果類型,而是可以使用「ActionResult」。過去我已經使用了它幾次,它允許我創建測試,否則幾乎不可能創建測試。 –