gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:55:39 29 4
gpt4 key购买 nike

我有代码,我用 CallableStatement.executeQuery() 填充 Resultset。我已经模拟了 ResultSetCallableStatement 但为了测试我必须填充 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);

我现在已经模拟了 CallableStatement 和 ResultSet,因为它们被模拟了,所以我的 rset 是空的。我想填充结果集并按如下方式进行操作

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();

但是 rsetnull

最佳答案

你还应该模拟 next() 方法,让它在第一次被调用时返回 true,因为 mockito 默认返回 false

Mockito.when(resultSetMock.next()).thenReturn(true).thenReturn(false);

关于java - 如何在 Java 中使用 Mockito 模拟结果集并填充它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267389/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com