比如對某個新增的dao進行單元測試,那豈不是要真的往數據庫中插入一條數據?每次單元測試都新增一條數據?
還有,查詢操作,返回一個List的對象集合,怎麼判斷數據是準確的呢?
對於單元測試,大家有什麼好的實踐方案嗎?
闭关修行中......
單元測試中使用資料庫,可以考慮兩種方案:
搭建一個長期使用的測試資料庫,作為單元測試,測試開始前或完成後清空無關數據,即可確保測試的可重複性。缺點是多個人同時執行單元測試時,可能會失敗。
使用記憶體資料庫(如 H2)。優點是無需清空無關數據,缺點是要將資料庫初始化過程(如建表語句)納入單元測試中。如果初始化很複雜,也會影響單元測試的效率。
至於如何驗證查詢結果,基本上是根據業務邏輯來。例如我單元測試運行到這裡,查詢這個一定會回傳 27 筆記錄,那就驗證回傳記錄數是否為 27。其他情況可以自己設計。
單元測試中使用資料庫,可以考慮兩種方案:
搭建一個長期使用的測試資料庫,作為單元測試,測試開始前或完成後清空無關數據,即可確保測試的可重複性。缺點是多個人同時執行單元測試時,可能會失敗。
使用記憶體資料庫(如 H2)。優點是無需清空無關數據,缺點是要將資料庫初始化過程(如建表語句)納入單元測試中。如果初始化很複雜,也會影響單元測試的效率。
至於如何驗證查詢結果,基本上是根據業務邏輯來。例如我單元測試運行到這裡,查詢這個一定會回傳 27 筆記錄,那就驗證回傳記錄數是否為 27。其他情況可以自己設計。