您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit使用經驗(轉自PMT雜志)
作者:網絡轉載 發(fā)布時間:[ 2013/1/17 13:59:06 ] 推薦標簽:

經驗八、書寫測試時要考慮地區(qū)和設置

比如某個測試要使用日期,下面的代碼是創(chuàng)建日期對象的一種方法Date date = DateFormat.getInstance ().parse ("dd/mm/yyyy");
但是如果運行上面測試代碼的機器采用不同的地區(qū)設置,那么會有問題。因此我們好用下面的另一種方法:

Calendar cal = Calendar.getInstance ();
Cal.set (yyyy, mm-1, dd);
Date date = Calendar.getTime ();

顯然,第二種方法能夠適應地區(qū)設置的變化。

經驗九、利用Junit 的自動異常處理書寫簡潔的測試代碼

很多Junit 的初學者經常會寫出類似下面的這些代碼

public void exampleTest () {
try {
// do some test
} catch (SomeApplicationException e) {
fail ("Caught SomeApplicationException exception");
}
}

事實上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會自動捕獲異常。那些沒有被捕獲的異常被當成錯誤處理。所以上面的代碼很冗余,完全可以寫成下面等效卻簡潔得多的代碼:

public void exampleTest () throws SomeApplicationException {
// do some test
}

更少的測試代碼也更容易讀懂更容易維護。

經驗十、充分利用Junit 的assert/fail 方法

Junit 有豐富而靈活的assert/fail 方法,如何用好這些方法也是大有講究的。比如下面的寫法不大好assert (creds == 3);不如寫成assertEquals ("The number of credentials should be 3", 3, creds);

第二種寫法不僅易于閱讀,而且在執(zhí)行時如果fail 也可以向測試人員提供更多的信息。Junit 也有支持浮點數的assert方法,干凈利索如下例
assertEquals ("some message", result, expected, delta);

另外要一提的是:assertSame()用來測試兩個引用是否指向同一個對象assertEquals()用來測試兩個對象是否相等

經驗十一、確保測試代碼與時間無關

盡量避免可能過期的測試數據,這種數據應該可以手工或者自動的刷新。另外還有一個技巧是在使用這些數據前更改系統(tǒng)的當前日期,數據操作結束后再恢復日期。當然,使用這一技巧要注意可能的副作用。

經驗十二、使用文檔生成器做測試文檔

我們當然可以使用文本編輯器來書寫單元測試的文檔,但是更好的方法是使用文檔生成器比如JavaDoc自動生成,這樣我們不需擔心實現(xiàn)和文檔之間的同步問題。自動生成的文檔格式統(tǒng)一錯誤也少。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd