文章詳情頁
java - 單元測試對dao層的測試有什么好的實踐方案?
瀏覽:171日期:2023-12-23 18:47:53
問題描述
比如對某個新增的dao進行單元測試,那豈不是要真的往數(shù)據(jù)庫中插入一條數(shù)據(jù)?每次單元測試都新增一條數(shù)據(jù)?
還有,查詢操作,返回一個List的對象集合,怎么判斷數(shù)據(jù)是準確的呢?
對于單元測試,大家有什么好的實踐方案嗎?
問題解答
回答1:單元測試中使用數(shù)據(jù)庫,可以考慮兩種方案:
搭建一個長期使用的測試數(shù)據(jù)庫,作為單元測試,測試開始前或完成后清空無關(guān)數(shù)據(jù),即可保證測試的可重復性。缺點是多個人同時運行單元測試時,可能會失敗。
使用內(nèi)存數(shù)據(jù)庫(如 H2)。優(yōu)點是無需清空無關(guān)數(shù)據(jù),缺點是要將數(shù)據(jù)庫初始化過程(如建表語句)納入單元測試中。如果初始化很復雜,也會影響單元測試的效率。
至于如何驗證查詢結(jié)果,基本上根據(jù)業(yè)務邏輯來。比如我單元測試運行到這里,查詢這個一定會返回 27 條記錄,那就驗證返回記錄數(shù)是否為 27。其他情況可以自己設(shè)計。
標簽:
java
上一條:java - 數(shù)據(jù)庫一條記錄為什么經(jīng)過hibernate查詢變成一個對象了呢??下一條:java中成員變量productDao并沒有初始化,為什么可以調(diào)用方法?
相關(guān)文章:
1. javascript - 怎么下載vue csp版本的2.0或者以上?2. golang - 用IDE看docker源碼時的小問題3. javascript - 求救!網(wǎng)頁播放視頻只有聲音沒有畫面,網(wǎng)頁上傳視頻文件時怎么知道視頻的編碼為H264還是MPEG4??4. javascript - webpack --hot 熱重載無效的問題5. io - java 文件操作,如何向指定的位置插入內(nèi)容 (不是替換內(nèi)容) ?6. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?7. javascript - vue使用videojs+videojs-contrib-hls報錯8. dockerfile - [docker build image失敗- npm install]9. mysql如何配置遠程php外網(wǎng)鏈接數(shù)據(jù)庫10. Python 爬蟲 遇到的問題(手淘問大家)
排行榜

熱門標簽