小编Tej*_*hah的帖子

如何模拟结果集并使用Java中的Mockito填充它

我有代码,我填充ResultsetCallableStatement.executeQuery().我已经嘲笑了ResultSet,CallableStatement但为了测试我必须填充的方法ResultSet.

这是我正在测试的方法的代码

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);
Run Code Online (Sandbox Code Playgroud)

我已经嘲笑了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();
Run Code Online (Sandbox Code Playgroud)

不过rsetnull.

java junit4 mockito

35
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×1

junit4 ×1

mockito ×1