Mockito - когда ... thenReturn несколько раз, передавая список ожидаемых значений - PullRequest
0 голосов
/ 09 марта 2020

Почему Mockito не поддерживает коллекцию в методе thenReturn?

Я хочу

// mockObject.someMethod() returns an instance of "Something".
// Want to achieve that call mockObject.someMethod the first time returns Something_1, call mockObject.someMethod the second time returns Something_2, call mockObject.someMethod the third time returns Something_3, ...
List<Something> expectedValues = ...;
when(mockObject.someMethod()).thenReturn(expectedValues);

, поскольку число expectedValues является произвольным.

1 Ответ

2 голосов
/ 09 марта 2020

Метод thenReturn поддерживает переменные, но нет коллекций:

Mockito.when(mockObject.someMethod()).thenReturn(something1, something2, ...);

OR

Mockito.when(mockObject.someMethod()).thenReturn(something, arrayOfSomething);

Альтернативой является цепочка вызовов thenReturn:

Mockito.when(mockObject.someMethod()).thenReturn(something1).thenReturn(something2);

Оба вернут something1 в первый вызов mockObject.someMethod() и something2 при втором вызове et c.

...