文檔首頁>>Parasoft Jtest 使用教程>>parasoft Jtest 使用教程:生成、執(zhí)行和擴(kuò)展Junit測試用例
parasoft Jtest 使用教程:生成、執(zhí)行和擴(kuò)展Junit測試用例
Jtest能自動的生成和執(zhí)行用來捕捉運(yùn)行時異常的JUnit測試用例以及盡可能完整的運(yùn)用方法。你能擴(kuò)展這些自動生成的測試用例來提高測試覆蓋率,驗(yàn)證單元級的功能,以及子模塊,模塊和系統(tǒng)級的功能。
目的:
演示如何自動生成和運(yùn)行JUnit測試用例,怎樣復(fù)查和驗(yàn)證結(jié)果,怎樣修復(fù)發(fā)現(xiàn)的錯誤。
準(zhǔn)備:
Jtest實(shí)例項(xiàng)目的創(chuàng)建。
生成過程
- 點(diǎn)擊Jtest視圖工具條中的Delete All按鈕,清除當(dāng)前消息。
- 選擇Jtest Example>examples.eval>Simple.java in the Package Exporer。
- 點(diǎn)擊工具條中的Test Using 按鈕。當(dāng)你點(diǎn)擊這個按鈕時,Jtest執(zhí)行靜態(tài)分析以及單元測試。前面的課程關(guān)注靜態(tài)分析結(jié)果;這個課程關(guān)注單元測試的結(jié)果。如前面教程所講,通過選擇不同的配置,可以只執(zhí)行靜態(tài)分析或者單元測試。
- 復(fù)查在測試結(jié)束后打開的Jtest總結(jié)面板。單元測試用例生成策略顯示在generation標(biāo)簽中。單元測試執(zhí)行策略顯示在Execution標(biāo)簽中。
- 單擊Close按鈕來關(guān)閉總結(jié)面板。
- 注意Jtest將生成的JUnit測試類文件添加到Jtest Example.jtest項(xiàng)目中的examples.eval包中。
- 使用測試文件驗(yàn)證Jtest視圖并通過打開Jtest視圖下右側(cè)頂部的下拉菜單的目錄布局,然后選擇Layout>Tested Files and Categories。
- 復(fù)查Jtest視圖中的信息。
- 在Jtest視圖中,擴(kuò)充simple.java>Review Exceptions>[line#]Unverified java.lang.StringindexOutOfBoundsException:String index out of range 消息。
- 雙擊堆棧跟蹤元素,查看失敗的代碼。這揭示了:當(dāng)“0”和“00”被作為startsWith方法中的參數(shù)str和match的值被傳入時,一個異常被拋出。這個異常被認(rèn)為是一個錯誤因?yàn)檫@個方法應(yīng)該能處理任何有效的輸入。換句話說,這個方法應(yīng)該考慮到不同的字符串大小的可能性。如果str的長度比match的小,當(dāng)在for循環(huán)中調(diào)用str.charAt(i)方法時,這個異常被拋出。為了處理這個異常,方法應(yīng)該始終檢查str和match的長度。
- 通過右擊它的節(jié)點(diǎn),表明這個未驗(yàn)證的異常實(shí)際上是一個錯誤,然后選擇Move task to "Fix Unit Test Problems".異常將從復(fù)查未驗(yàn)證的單元測試錯誤/失敗任務(wù)目錄中被移除并且添加到修復(fù)單元測試問題任務(wù)目錄中。Jtest還將用一個//verified注釋替換來自相關(guān)測試用例的//unverified注釋。
- 通過使用一個if語句,修改startsWith()方法來保護(hù)代碼免于異常;修改的代碼如下所示:
public static boolean startsWith (String str, String match) {
if (str.length() < match.length()) {
return false;
}
for (int i = 0; i < match.length (); ++i)
if (str.charAt (i) != match.charAt (i))
return false;
return true;
}
這個方法始終檢查字符串的長度以保證不會發(fā)生StringIndexOutOfBoundsException。 - 選擇File>Save來保存修改的類。
- 將未驗(yàn)證的結(jié)果轉(zhuǎn)化為功能性的單元測試,如下:
- 復(fù)查每一個列在Jtest視圖的Review Unit Test Outcomes任務(wù)目錄中的未驗(yàn)證結(jié)果。
- 右擊Review Unit Test Outcomes節(jié)點(diǎn),然后從目錄快捷方式中選擇Verify All。
查看測試用例覆蓋率
- 打開被測文件的編輯器(Simple.java)。Jtest使用左邊綠色的欄來表明相關(guān)的路線被覆蓋了。粉色的欄表明相關(guān)語句沒有被覆蓋。沒有顏色的欄表明相關(guān)的路線不可執(zhí)行。既然達(dá)到了100%的覆蓋率,所以對這個文件沒有紫色的欄。
- 打開只在Jtest中的覆蓋視圖(選擇Jtest>Show View>Coverage)。覆蓋視圖顯示出針對類和每個方法的覆蓋統(tǒng)計(jì)(覆蓋百分比,總執(zhí)行路線以及覆蓋路線)。
用簡單的用戶定義的測試用例來擴(kuò)展測試類
- 雙擊Jtest Example.jtest>examples.eval>SimpleTest.java,在編輯器中打開它。
- 在testMap1()方法的上面,注釋之后添加如下所示測試方法。
public void testMap() {
assertTrue(Simple.map(34) == -2);
} - 選擇File>Save來保存修改后的測試類。
- 運(yùn)行針對簡單類(包括自動生成的測試類,及新測試用例)的所有測試用例,如下:
- 選擇包瀏覽器Jtest Example>examples.eval>Simple.java。
- 打開Test Using下拉目錄。然后從目錄中選擇Test Using>Built-in>Run Unit Tests。
以上就是本次教程的內(nèi)容了,你也可以申請jtest試用>>,親自動手試試哦。
查看更多parasoft測試產(chǎn)品
<詳詢客服>獲取更多活動信息