簡體   English   中英

在Java單元測試中模擬Db

[英]Mocking Db in Java Unit tests

我正在嘗試在服務層的方法中對該代碼塊進行單元測試。 任何人都可以建議我可以(/應該)在這里進行測試以及如何對其進行測試(尤其是插入數據庫的部分)。 任何指針(/示例代碼/ doc)將非常有幫助。

if (element != null) {
    id = iplDAO.loadGames(element, batchVO.getId());
    iplPartyDetailsVO = element.getParty();
    if iplPartyDetailsVO != null) {
    try {
        iplDAO.insertPartyDetails(iplPartyDetailsVO, id, batchVO.getId());
    } catch (Exception e) {

        logger.logp("className");
        String err = "blah";
        iplDAO.insertIntoError(err_t);
    }
}

我認為您可能會將測試與模擬相混淆,如果您嘗試為此服務層代碼編寫測試,那么您需要確定自己的期望,例如:

  • 從數據源加載一些游戲
  • 保存一些內容(代碼中不清楚您實際保存的內容,但是編寫一些單元測試可能會使這一點更加明顯)。

因此,如果這些您對代碼的期望,那么您將需要編寫一個測試來驗證它們是否已得到滿足。

這意味着模擬正在調用的依賴關系 (在您的情況下為iplDAO對象),以便每個方法調用都返回可用於測試功能的東西-在您的情況下,這兩個調用:

 iplDAO.loadGames(element,batchVO.getId())

iplDAO.insertPartyDetails(iplPartyDetailsVO, id,batchVO.getId());

有很多Java模擬庫可供選擇,並且它們都有完整的文檔,但是此博客文章是一個很好的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM