首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

EasyMock 單元測試:如何正確 Mock ResultSet?

     編輯:程式設計綜合問答

使用 EasyMock 進行資料庫層單元測試時,常需 Mock ResultSet 以模擬查詢結果。提問者提供的測試類與被測類截圖顯示,核心難點在於 ResultSet 的介面方法(next()、getString() 等)需按呼叫順序預設回傳值。

關鍵步驟

  1. 建立 ResultSet 模擬物件:ResultSet mockRs = EasyMock.createMock(ResultSet.class);
  2. 使用 EasyMock.expect(mockRs.next()).andReturn(true).times(n).andReturn(false); 模擬多行資料迭代。
  3. 對每個欄位設定期望:EasyMock.expect(mockRs.getString("colName")).andReturn("value");
  4. 呼叫 EasyMock.replay(mockRs); 進入重放模式,再注入被測類。

補充截圖顯示的正確配置:確保 PreparedStatement 的 executeQuery() 回傳該 mockRs,並驗證 verify() 所有預期呼叫均已發生。

EasyMock ResultSet 配置示例 測試執行結果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved