首頁  >  問答  >  主體

java - 单元测试对dao层的测试有什么好的实践方案?

比如对某个新增的dao进行单元测试,那岂不是要真的往数据库中插入一条数据?每次单元测试都新增一条数据?

还有,查询操作,返回一个List的对象集合,怎么判断数据是准确的呢?

对于单元测试,大家有什么好的实践方案吗?

阿神阿神2742 天前499

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-04-18 10:58:06

    單元測試中使用資料庫,可以考慮兩種方案:

    1. 搭建一個長期使用的測試資料庫,作為單元測試,測試開始前或完成後清空無關數據,即可確保測試的可重複性。缺點是多個人同時執行單元測試時,可能會失敗。

    2. 使用記憶體資料庫(如 H2)。優點是無需清空無關數據,缺點是要將資料庫初始化過程(如建表語句)納入單元測試中。如果初始化很複雜,也會影響單元測試的效率。

    至於如何驗證查詢結果,基本上是根據業務邏輯來。例如我單元測試運行到這裡,查詢這個一定會回傳 27 筆記錄,那就驗證回傳記錄數是否為 27。其他情況可以自己設計。

    回覆
    0
  • 取消回覆