3.8、junit的擴展應用
以下羅列了些junit的擴展應用:
junit + httpunit=web功能測試工具
junit + hansel =代碼覆蓋測試工具
junit + abbot =界面自動回放測試工具
junit + dbunit =數(shù)據(jù)庫測試工具
junit + junitperf=性能測試工具
3.9、一些使用junit經(jīng)驗
不要用testcase的構造函數(shù)初始化,而要用setup()和teardown()方法。
不要依賴或假定測試運行的順序,因為junit利用vector保存測試方法。所以不同的平臺會按不同的順序從vector中取出測試方法。
避免編寫有副作用的testcase。例如:如果隨后的測試依賴于某些特定的交易數(shù)據(jù),不要提交交易數(shù)據(jù)。簡單的回滾可以了。
當繼承一個測試類時,記得調用父類的setup()和teardown()方法。
將測試代碼和工作代碼放在一起,一邊同步編譯和更新。
測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。
確保測試與時間無關,不要依賴使用過期的數(shù)據(jù)進行測試。導致在隨后的維護過程中很難重現(xiàn)測試。
如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的locale進行測試。
盡可能地利用junit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
測試要盡可能地小,執(zhí)行速度快。
參考資料與附件
1. http:// www.junit.org junit官方網(wǎng)站
2. http://bbs.51cmm.com 的測試論壇
3. http://www.uml.org.cn 的軟件測試專欄
4. 單元測試 《程序員》 2002年7期
5. junit設計模式分析 《程序員》2003年6期
6. 《軟件測試和junit實踐》
7. 附件triangle.java 一個要測試的類
8. 附件exampletest.java 一個測試用例類
triangle.java
/**
* this is triangle class
* @author liujun
*/
public class triangle
{
//定義三角形的三邊
protected long lbordera = 0;
protected long lborderb = 0;
protected long lborderc = 0;
//構造函數(shù)
public triangle(long lbordera,long lborderb,long lborderc)
{
this.lbordera = lbordera;
this.lborderb = lborderb;
this.lborderc = lborderc;
}
/**
* 判斷是否是三角形
* 是返回ture;不是返回false
*/
public boolean istriangle(triangle triangle)
{
boolean istrue = false;