gpt4 book ai didi

java - 如何使用 Mockito 模拟 ResultSet.next() 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:25 38 4
gpt4 key购买 nike

我正在像这样模拟 java.sql.ResultSet

ResultSet rs = mock(ResultSet.class);
when(rs.next()).thenReturn(true); // this seems wrong appraoch

测试代码是这样的

while (rs.next()) {
// doing stuff here
}

所以问题是当我将模拟 rs.next() 设置为 true 时,while 循环永远不会终止。我想在 2 次迭代后终止 while 循环。那么我如何模拟 rs.next() 方法呢?

我也试过

when(rs.next()).thenReturn(true, true, false); // always return false 

请帮忙!

最佳答案

您可以链接 doReturn() 方法调用:

doReturn(true).doReturn(true).doReturn(false).when(rs).next();

或者,如评论中所述,链接 thenReturn 方法调用:

when(rs.next()).thenReturn(true).thenReturn(true).thenReturn(false);

或者,如果你想更进一步,你可以使用 Mockito Answers:

when(rs.next()).thenAnswer(new Answer() {
private int iterations = 2;

Object answer(InvocationOnMock invocation) {
return iterations-- > 0;
}
});

关于java - 如何使用 Mockito 模拟 ResultSet.next() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32088073/

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