我有代碼在其中使用CallableStatement.executeQuery()填充Resultset。我嘲笑了ResultSet和CallableStatement,但爲了測試我必須填充ResultSet的方法。如何模擬結果集並使用Java中的Mockito填充它
這裏是從方法我測試
ResultSet rset = cs.executeQuery();
while (rset.next()) {
IndexVolatilityImpl tsImpl = new IndexVolatilityImpl();
tsImpl.setTradeDate(rset.getString("trade_date"));
tsImpl.setTradeTime(rset.getString("trade_time"));
tsImpl.setExprDate(rset.getString("expr_date"));
tsImpl.setSymbol(rset.getString("symbol"));
tsImpl.setTradePrice(rset.getDouble("trade_price"));
tsImpl.setContractMonth(rset.getString("contract_month"));
tsImpl.setMilliSecs(rset.getString("trade_time_thou"));
colIndexVolatilityImpl.add(tsImpl);
的代碼,我嘲笑的CallableStatement和ResultSet,因爲現在他們嘲笑我的RSET出現空。我想填充Resultset並按如下方式執行:
resultSetMock = Mockito.mock(ResultSet.class);
Mockito.when(resultSetMock.getString("trade_date")).thenReturn("03/10/2011");
Mockito.when(resultSetMock.getString("trade_time")).thenReturn("12:24:56");
Mockito.when(resultSetMock.getString("expr_date")).thenReturn("03/19/2011");
Mockito.when(resultSetMock.getString("symbol")).thenReturn("VIX1");
Mockito.when(resultSetMock.getDouble("trade_price")).thenReturn(Double.valueOf("20.96"));
Mockito.when(resultSetMock.getString("contract_month")).thenReturn("1");
Mockito.when(resultSetMock.getString("trade_time_thou")).thenReturn("165");
Mockito.doReturn(resultSetMock).when(callableStatementMock).executeQuery();
但是結果集簽出爲空。
因此,任何幫助將不勝感激,以幫助如何填充模擬結果集。
感謝 Tejas的
最好的答案是在底部,並擁有超過24 upvotes通過@proactif – nanospeck 2017-06-23 05:26:08