共用方式為


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 單元測試

  1. 若要產生 ASP.NET 單元測試,請從建立 ASP.NET 網站開始。若要這麼做,請以滑鼠右鍵按一下您的方案,指向 [加入],然後按一下 [新網站]。

  2. 在 [加入新網站] 對話方塊中,按一下 [ASP.NET 網站]。

  3. 在 [位置] 下按一下 [檔案系統],指出 [ASP.NET 程式開發伺服器]。

  4. 按一下 [確定]。

    您現在已經擁有一個新的網站。

  5. 將類別加入這個專案。若要這麼做,請在 [方案總管] 中,以滑鼠右鍵按一下這個網站,再按一下 [加入新項目]。

  6. 在 [加入新項目] 對話方塊中,按一下 [類別],再按一下 [加入]。

  7. [Microsoft Visual Studio] 對話方塊便會出現,並會詢問是否要將新的類別置於 App_Code 資料夾中。按一下 [是]。

    注意事項:

    您無法從位於 .aspx 檔案,或是 App_Code 以外資料夾中的程式碼產生測試。

  8. 產生 ASP.NET 單元測試。如果新的類別檔案尚未開啟,在 [方案總管] 中按兩下該檔案即可加以開啟。

  9. 以滑鼠右鍵按一下類別檔案中的類別,然後按一下 [建立單元測試]。

  10. [建立單元測試] 對話方塊隨即出現。如需如何使用此對話方塊產生單元測試的資訊,請參閱 HOW TO:產生單元測試

  11. 確認已經選取要用來產生測試的類別、方法或命名空間。

  12. (選擇項) 接受預設的 [輸出專案] 或選取新的專案。

  13. 完成後,請按一下 [確定]。

    新的 ASP.NET 單元測試便會加入至您測試專案中的檔案。

    若要查看此單元測試,請開啟這個測試檔案並捲動至結尾。以單元測試當做 ASP.NET 單元測試執行的必要屬性,都已經自動指定。如需這些屬性的詳細資訊,請參閱下列程序:「設定 ASP.NET 單元測試」。

設定 ASP.NET 單元測試

經過設定,也就是將值指派至測試的自訂屬性,即可將現有的單元測試變成 ASP.NET 單元測試。您必須在包含單元測試的程式碼檔案中設定這些值。

在設定自訂屬性之前,應該先將參考加入至支援自訂屬性的命名空間,也就是 Microsoft.VisualStudio.TestTools.UnitTesting.Web 命名空間。一旦這項參考就位,IntelliSense 即可協助您設定屬性值。

注意:當您產生 ASP.NET 單元測試時,這些屬性都會自動設定。

若要設定 ASP.NET 單元測試

  1. 開啟包含單元測試的程式碼檔案。

  2. 設定單元測試的下列屬性:

[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 單元測試

  1. 開啟回合組態檔。如需詳細資訊,請參閱 HOW TO:指定測試回合組態

  2. 在 [主機] 頁面上,將 [主機類型] 設定為 ASP.NET。

    如此就會顯示額外的選擇,其中一些會對應至您可以在程式碼中指定的屬性,像是 [要測試的 URL]。在上一個程序「設定 ASP.NET 單元測試」中,已有針對這些屬性加以說明。

    在 [主機] 頁面上完成這些值的設定後,按一下 [儲存],再按一下 [確定]。

請參閱

工作

HOW TO:指定測試回合組態

HOW TO:套用測試執行組態

概念

ASP.NET 單元測試概觀

其他資源

HOW TO:產生單元測試