У меня есть метод, который я вызываю, который подключается к другому серверу, и каждый раз, когда я вызываю его, он возвращает разные данные.Я пишу модульный тест для класса, вызывающего метод, и я издевался над этим классом, и я вызываю метод, и я ожидаю, что он вернет заглушенный результат.На самом деле он работает с использованием doReturn, но каждый раз возвращает одни и те же данные.Я хочу, чтобы он возвращал разные данные, и я хочу иметь возможность указать, каким он должен быть.
Я пытался использовать doReturn - когда и это работает, но я не могу заставить его вернуть другой результат.Я не знаю, как это сделать.
Я пытался использовать когда - тогда возврат, который был решением, которое я нашел здесь, в StackOverflow.При этом я мог указать, что я получаю разные ответы каждый раз, когда вызываю один и тот же метод.
Проблема в том, что я получаю ошибку компиляции "Метод XXX не определен для типа OngoingStubbing
скажем, я не слишком хорошо разбираюсь в Mockito и не очень понимаю, в чем проблема.
JSONArray jsonArray1 = { json array1 here };
JSONArray jsonArray2 = { json array2 here };
// Works but return the same jsonArray1 every time:
MyClass MyClassMock = mock(MyClass.class);
Mockito.doReturn(jsonArray1)
.when(MyClassMock).getMyValues(any(List.class), any (String.class), any(String.class),
any(String.class),
any(String.class));
// Does not work:
when(MyClassMock).getMyValues(any(List.class),
any(String.class), any(String.class),
any(String.class),
any(String.class)).thenReturn(jsonArray1, jsonArray2);
// Compile error:
// The method getMyValues(any(List.class), any(String.class), any (String.class), any(String.class), any(String.class)) is undefined for the type OngoingStubbing<MyClass>
Я получаю ошибку компиляции:
Метод getMyValues (any (List.class), any (String.class), any (String.class), any (String.class), any (String.class)) не определено для типа OngoingStubbing