• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 單元測試實踐小結

    發表于:2008-02-03來源:作者:點擊數: 標簽:
    應用 單元測試 ,首先要解決的是單元測試的關注點。 測試的關注點在于測試邏輯,只要有邏輯就要寫測試代碼。測試的手段就是驗證所有被 測試方法 的所有產出物,包括: 1. 測試方法的返回值 2. 測試方法的執行流程 例如: public class DomainService { privat
     應用單元測試,首先要解決的是單元測試的關注點。

        測試的關注點在于測試邏輯,只要有邏輯就要寫測試代碼。測試的手段就是驗證所有被測試方法的所有產出物,包括:

        1. 測試方法的返回值

        2. 測試方法的執行流程

        例如:

    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);
        }
    }

     

        在對于測試findByCond方法,有兩個測試用例

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

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

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

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>