我有一个元组模拟类,期望会调用其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]);
}
预期的结果是所有对 tuple.getString(0)
的调用都应该返回字符串 serviceRequestKey
,而每个对 tuple.getString(1)
的调用都应该返回不同的字符串 logEntries[i]
,即第i次调用 tuple.getString(1)
返回logEntries数组的第i个元素。然而由于某些奇怪的原因,事情混淆了,第二次对 tuple.getString(1)
的调用返回字符串 serviceRequestKey
,而不是 logEntries [1]
。我在这里漏掉了什么?