您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
單元測試實(shí)踐小結(jié)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/30 13:55:07 ] 推薦標(biāo)簽:

 應(yīng)用單元測試,首先要解決的是單元測試的關(guān)注點(diǎn)。

 測試的關(guān)注點(diǎn)在于測試邏輯,只要有邏輯要寫測試代碼。測試的手段是驗(yàn)證所有被測試方法的所有產(chǎn)出物,包括:

    1. 測試方法的返回值

    2. 測試方法的執(zhí)行流程

    例如:

public class DomainService {
private static TheDAO dao = new TheDAO ();
public ReturnObject findByCond(String) {
        return (ReturnObject)dao.getBeanByCondition("select * from ReturnObject where cond="+ paramter, ReturnObject.class);
    }
}

 

    在對(duì)于測試findByCond方法,有兩個(gè)測試用例:

    A.測傳遞給TheDAO.getBeanByCondition的參數(shù)的正確性,如果參數(shù)不是”select * from ReturnObject where cond=?”和ReturnObject.class則返回為null。

    B.測返回的對(duì)象正確性。
 
    特別是第二點(diǎn),在商業(yè)應(yīng)用上比較常見的。通常有些方法無明顯output,通常是執(zhí)行寫表操作的。對(duì)于這樣的方法是測試它的執(zhí)行流程。當(dāng)然這些方法本身包含邏輯的。
 
    一個(gè)簡單的解決方法是利用Aclearcase/" target="_blank" >ccess Log來實(shí)現(xiàn)(雖然這樣的測試不多,而寫的case代碼也看著怪怪的)。

public class ServiceExample{
    private DatabaseDao1 dao1;
    private DatabaseDao2 dao2;
 
    public void noOutputMethod(){
if(...)
            dao1.update(...);
    if(...)
            dao2.delete();
}
}

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