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