在 mockito 中动态链接“thenReturn”
我有一个元组模拟类,它的getString(0)和getString(1)方法应该被调用n次。而不是写这样的东西,
when(tuple.getString(0)).thenReturn(logEntries[0]).thenReturn(logEntries[1])...thenReturn(logEntries[n - 1])
手动,我尝试了以下操作:
OngoingStubbing stubbingGetStringZero = when(tuple.getString(0)).thenReturn(serviceRequestKey);
OngoingStubbing stubbingGetStringOne = when(tuple.getString(1)).thenReturn(logEntries[0]);
for (int i = 1; i < n; i++) {
stubbingGetStringZero = stubbingGetStringZero.thenReturn(serviceRequestKey);
stubbingGetStringOne = stubbingGetStringOne.thenReturn(logEntries[i]);
}
预期的结果是,所有 对 的调用都应返回 String,而 对 的每个调用都应返回不同的 String,即。第 i 次调用 tuple.getString(1) 返回 logEntries 数组的第 i 个元素。tuple.getString(0)
serviceRequestKey
tuple.getString(1)
logEntries[i]
但是,由于一些奇怪的原因,事情变得混乱,第二次调用返回字符串而不是。我在这里错过了什么?tuple.getString(1)
serviceRequestKey
logEntries[1]