У меня есть фиктивный класс Tuple, методы 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)
должны возвращать String serviceRequestKey
, а каждый вызов tuple.getString(1)
должен возвращать другую String logEntries[i]
, т.е. i-й вызов кортежа. getString (1) возвращает i-й элемент массива logEntries.
Однако по какой-то странной причине все смешалось, и второй вызов tuple.getString(1)
возвращает String serviceRequestKey
вместо logEntries[1]
. Что мне здесь не хватает?