HOW TO:建立 ASP.NET 單元測試
更新:2007 年 11 月
您可以使用 ASP.NET 單元測試,測試本身為 ASP.NET 專案之一部分的方法。您可以用下列兩種方式的其中一種,建立 ASP.NET 單元測試:
從 ASP.NET 專案產生 ASP.NET 單元測試,這種情節是最常見的。
將現有的單元測試設定為 ASP.NET 單元測試。
您也可以在回合組態中指定 ASP.NET 單元測試所使用的屬性 (Attribute)。下列章節將會說明這些程序。
注意事項: |
---|
當您執行 ASP.NET 單元測試時,請勿針對包含 ASP.NET 單元測試之類別中的任何方法使用 ClassCleanupAttribute 或 ClassInitializeAttribute 屬性。同樣的,請勿在與 ASP.NET 單元測試相同的組件中,使用 AssemblyCleanupAttribute 或 AssemblyInitializeAttribute 屬性。在這些情況下使用這些屬性,就會造成未定義的結果。不過,您可以在任何單元測試使用 TestInitializeAttribute 和 TestCleanupAttribute 屬性。 |
不論這些測試回合所包含的測試類型為何,安裝指令碼和清除指令碼都會在測試回合的之前和之後執行。如需與測試回合一起執行之指令碼的詳細資訊,請參閱測試部署概觀和 HOW TO:指定測試回合組態。
產生 ASP.NET 單元測試
若要產生 ASP.NET 單元測試,首先必須在您的 Visual Studio 方案內建立一個 ASP.NET 網站,然後將一個類別加入至這個網站專案,最後再從該類別中產生單元測試。
若要產生 ASP.NET 單元測試
若要產生 ASP.NET 單元測試,請從建立 ASP.NET 網站開始。若要這麼做,請以滑鼠右鍵按一下您的方案,指向 [加入],然後按一下 [新網站]。
在 [加入新網站] 對話方塊中,按一下 [ASP.NET 網站]。
在 [位置] 下按一下 [檔案系統],指出 [ASP.NET 程式開發伺服器]。
按一下 [確定]。
您現在已經擁有一個新的網站。
將類別加入這個專案。若要這麼做,請在 [方案總管] 中,以滑鼠右鍵按一下這個網站,再按一下 [加入新項目]。
在 [加入新項目] 對話方塊中,按一下 [類別],再按一下 [加入]。
[Microsoft Visual Studio] 對話方塊便會出現,並會詢問是否要將新的類別置於 App_Code 資料夾中。按一下 [是]。
注意事項: 您無法從位於 .aspx 檔案,或是 App_Code 以外資料夾中的程式碼產生測試。
產生 ASP.NET 單元測試。如果新的類別檔案尚未開啟,在 [方案總管] 中按兩下該檔案即可加以開啟。
以滑鼠右鍵按一下類別檔案中的類別,然後按一下 [建立單元測試]。
[建立單元測試] 對話方塊隨即出現。如需如何使用此對話方塊產生單元測試的資訊,請參閱 HOW TO:產生單元測試。
確認已經選取要用來產生測試的類別、方法或命名空間。
(選擇項) 接受預設的 [輸出專案] 或選取新的專案。
完成後,請按一下 [確定]。
新的 ASP.NET 單元測試便會加入至您測試專案中的檔案。
若要查看此單元測試,請開啟這個測試檔案並捲動至結尾。以單元測試當做 ASP.NET 單元測試執行的必要屬性,都已經自動指定。如需這些屬性的詳細資訊,請參閱下列程序:「設定 ASP.NET 單元測試」。
設定 ASP.NET 單元測試
經過設定,也就是將值指派至測試的自訂屬性,即可將現有的單元測試變成 ASP.NET 單元測試。您必須在包含單元測試的程式碼檔案中設定這些值。
在設定自訂屬性之前,應該先將參考加入至支援自訂屬性的命名空間,也就是 Microsoft.VisualStudio.TestTools.UnitTesting.Web 命名空間。一旦這項參考就位,IntelliSense 即可協助您設定屬性值。
注意:當您產生 ASP.NET 單元測試時,這些屬性都會自動設定。
若要設定 ASP.NET 單元測試
開啟包含單元測試的程式碼檔案。
設定單元測試的下列屬性:
[TestMethod]
由於所有單元測試都需要 [TestMethod] 屬性,這個屬性將會已經就位。
[UrlToTest()]
這是執行測試時所測試的 URL,例如 [UrlToTest(“https://localhost/WebSites/Default.aspx”)]。
[HostType()]
使用 [HostType(“ASP.NET”)]。測試通常都會在 VSTest 主機處理序下執行,不過 ASP.NET 單元測試則必須在 ASP.NET 主機處理序下執行。
範例
範例 1,如果您以 ASP.NET 程式開發伺服器來執行網站,您對 ASP.NET 單元測試所設定的屬性和值就可能與下列相似:
[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("https://localhost:25153/WebSite1")]
[AspNetDevelopmentServerHost("D:\\Documents and Settings\\user name\\My Documents\\Visual Studio 2005\\WebSites\\WebSite1", "/WebSite1")]
範例 2,若要測試在 IIS 下執行的網站,只要使用 TestMethod、HostType 和 UrlToTest 屬性即可:
[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("https://localhost:25153/WebSite1")]
使用回合組態設定 ASP.NET 單元測試
您可以在回合組態中設定 ASP.NET 單元測試所使用的屬性。在回合組態中指定這些屬性之後,只要該回合組態是現用組態,在執行任何 ASP.NET 單元測試時,都會套用這些設定。
注意事項: |
---|
對於 ASP.NET 單元測試只有一組設定會產生效果:回合組態設定或屬性設定,而不會是兩者的混合。如果兩者都存在的話,回合組態設定就會優先於屬性設定。這表示即使只有在回合組態中指定一個 ASP.NET 設定,也都會忽略任何指定為屬性的 ASP.NET 設定。 |
若要使用回合組態設定 ASP.NET 單元測試
開啟回合組態檔。如需詳細資訊,請參閱 HOW TO:指定測試回合組態。
在 [主機] 頁面上,將 [主機類型] 設定為 ASP.NET。
如此就會顯示額外的選擇,其中一些會對應至您可以在程式碼中指定的屬性,像是 [要測試的 URL]。在上一個程序「設定 ASP.NET 單元測試」中,已有針對這些屬性加以說明。
在 [主機] 頁面上完成這些值的設定後,按一下 [儲存],再按一下 [確定]。