2008年4月18日 星期五

VSTS 2008設計Unit Test單元測試(3)-測試方法(TestMethod)的例外處理

在測試專案中,實作Method的單元測試時會用到TestMethodAttribute,簡單來說,測試方法必須放置在測試類別中,並且以 TestMethodAttribute 標示,如此才能生效。

當測試的過程當中,假設想要刻意忽略某一種例外造成測試失敗時,就可以使用ExpectedExceptionAttribute來設定Exception物件。這個屬性可用來測試是否程式執行過程當中會丟出這個Exception例外狀況,假設有擲回預期的例外狀況,則測試方法為"成功",反之,如果丟回的例外不是預期的Exception物件,則測試將會失敗。

1.首先挑選要建立的單元測試,如下圖所示。

UnitTestFixed01

2.修改原本類別中的方法,加入判斷式,假設滿足某個條件時,要丟出我們想要監控的Exception例外狀況,程式碼如下。
UnitTestFixed02 

3.確認一下有設定TestMethodAttribute的測試方法,預設透過VSTS 2008所自動產生的測試方法,只會有設定[TestMethod()],所以並不會針對任何其他條件有所限制。

UnitTestFixed03 
4.將這個測試方法加入到測試編輯器中,並且加入核取的項目中,勾選想要測試的方法後,按下執行測試。
UnitTestFixed04 
5.此時測試結果會因為擷取到ApplicationException而回報測試失敗,點選結果可以看到測試的詳細資訊:UnitTestFixed05

6.接著回到測試方法中,加入ExpectedExceptionAttribute來設定ApplicationException物件。
UnitTestFixed06

7.假設測試程式執行過程當中會丟出這個ApplicationException例外狀況,則測試方法為"成功"。
UnitTestFixed07

沒有留言: