ASP.NET MVC實踐系列10-單元測試 單元測試方法
最早接觸單元測試是看了極限編程相關資料里邊講的測試驅動開發,然后下載了Nunit研究了一下,但并沒產生多大的觸動,因為那個時候做的都是些時間緊任務重的事情,對于單元測試的直接感覺就是有可能比較費時間。直到看了《敏捷軟件開發:原則、模式與實踐》,里邊那個保齡球計分程序很精彩,讓我知道了保齡球原來是這么計分的,更重要的是讓我認識到測試驅動編程原來這樣有意義,并且其實并不浪費時間(至于測試驅動編程到底有意義在哪里,我這里就不說了,大家可以參閱Kent的《測試驅動開發》,Robert C. Martin的《敏捷軟件開發:原則、模式與實踐》。在webform中對web層的邏輯很難做單元測試(當然我們可以利用mvp模式來分解web層邏輯,但因為沒有框架的支持,并且實現起來也不是很簡單,也不是特別好理解,所以應用并不廣泛)。ASP.NET MVC很好的解決了測試web邏輯的問題,可測試性也變成了ASP.NET MVC的優勢之一。下面我們就來介紹一下如何在ASP.NET MVC中進行單元測試。
一、測試路由器:
我們首先利用mvc的模板創建一個解決方案,我們可以在Gloabal.asax.cs文件中發現如下代碼


默認路由代碼
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
下面我們就為這段代碼寫一個單元測試(如果對路由還不清楚請參見:ASP.NET MVC實踐系列1-UrlRouting )

文章來源于領測軟件測試網 http://www.kjueaiud.com/