ASP.NET 單元測試概觀
更新:2007 年 11 月
您可以使用 ASP.NET 單元測試來測試 ASP.NET 站台或專案中的方法。例如,您可以測試構成 ASP.NET 專案之商務邏輯的方法。
注意事項: |
---|
如果您執行的是 Windows Vista,則必須以系統管理員身分執行 Visual Studio,才能執行 ASP.NET 單元測試。如果以一般使用者的身分執行 Visual Studio,雖然您可以建立網站,也可以建立及執行 ASP.NET 測試,但是測試將會失敗。若要以系統管理員身分執行 Visual Studio,請以滑鼠右鍵按一下 Microsoft Visual Studio 2005,然後再按一下 [以系統管理員身分執行]。如果看到 [繼續] 或 [允許] 處理序執行的提示,請分別按一下 [繼續] 或 [允許]。如果收到提示,要求您提供具有系統管理員使用權限之使用者的登入認證,則您必須提供這些認證才能順利執行 ASP.NET 單元測試。如需 Windows Vista 中安全性的詳細資訊,請參閱使用者帳戶控制概觀 (英文)。 |
ASP.NET 單元測試與其他單元測試的不同之處在於執行測試的程序。ASP.NET 測試會在將執行實際執行程式碼的相同環境中執行。因此,您可以選擇 IIS 或 ASP.NET 程式開發伺服器。當測試在 Web 伺服器處理序中執行時,您便可以存取與該處理序相關的所有環境,例如 Page 物件。
您可以利用兩種方法建立 ASP.NET 單元測試:直接產生 ASP.NET 單元測試,以及將現有的單元測試設定成以 ASP.NET 單元測試的方式執行。如需這兩種方法的詳細資訊,請參閱 HOW TO:建立 ASP.NET 單元測試。
您也可以在回合組態中指定設定,該項設定將會與您執行的單元測試搭配使用。當回合組態為現用的回合組態時,便只會使用這個設定。如需詳細資訊,請參閱 HOW TO:建立 ASP.NET 單元測試。
在執行 ASP.NET 單元測試時使用不同的處理序識別
當您測試 ASP.NET 程式碼時,測試程式碼會在 IIS 處理序或 ASP.NET 程式開發伺服器處理序中執行。如果您的 ASP.NET 單元測試是在 IIS 處理序中執行,基於安全性的目的,可以選擇將 ASP.NET 處理序當成「非預設使用者」(Non-default User) 執行,也就是以不同的處理序識別執行。
例如,如果 ASP.NET 網站必須存取電腦上的資源 (例如資料夾、檔案或資料庫),您可以選擇執行它,讓它對這些資源的權限剛好足夠而不超過。
注意事項: |
---|
預設的識別視 IIS 的版本而定。例如,在 Windows Server 2003 中,ASP.NET 的處理序 (w3wp.exe) 的預設識別為 "NETWORK SERVICE"。 |
在這個狀況下,執行單元測試可能會失敗。例如,以非預設使用者身分執行的 ASP.NET 處理序可能具有有限制的權限,但依然可能嘗試在 %WINDIR%\Temp 資料夾產生暫存檔。如果 %WINDIR%\Temp 的預設權限不足以允許處理序存取並產生那些檔案,那麼上述動作就會失敗。在此狀況下,為了使單元測試成功執行,您必須賦予處理序對 %WINDIR%\Temp 資料夾有較高的權限。
如果服務帳戶對於部署根資料夾沒有存取權,單元測試執行也會失敗。如果發生這個狀況,Visual Studio 會顯示對話方塊說明錯誤,您可以按一下 [確定] 略過。