Я хочу, чтобы PowerMockito возвращал мой пустой массив-список из Foo
s, когда вызывается new ArrayList<Foo>()
, но я не уверен, как построить инструкцию. В частности, я хочу, чтобы new ArrayList<AnyOtherType>()
создал новый список как обычно.PowerMockito - Как использовать whenNew() с типизированным списком?
ArrayList<Foo> fooList = new ArrayList<Foo>();
PowerMockito.whenNew(ArrayList.class).withParameterTypes(Foo.class).thenReturn(fooList);
^Вот в основном то, что у меня есть, но .withParameterTypes(Foo.class)
не позволяет мне следовать с .thenReturn()
. Мой единственный вариант: withArguments(firstArgument, additionalArguments)
.
Возможно ли это с помощью PowerMock, и если да, то как его построить?
EDIT:
Итак, основная проблема мне нужно, чтобы получить результат этого метода я пытаюсь проверить, но я должен был глумиться запрос, а список помещается в запросе на конец метода, который я пытаюсь проверить.
inspectionAction.viewInspectionDetailsAjax(mapping, form, request, response);
Этот метод тянет пару параметров из запроса, который Посмешищем (Mockito.mock(HttpServletRequest.class);
). Обычно в нашем приложении мы помещаем данные на переменную уровня сеанса. Но так как этот метод вызывается несколько раз сразу и результаты ajax'd на страницу, каждая часть данных хранится в запросе вместо:
request.setAttribute("inspectionAjaxDetails", details);
Так что мне нужно каким-то образом, чтобы получить details
, который является набрал ArrayList, когда request
издевается.
Попробуйте '.withNoArguments' вместо' .withParameterTypes'. – Aurand
Как я могу указать только 'ArrayList' вместо всех новых ArrayLists? –
Это еще одна причина, почему обычно не рекомендуется пытаться издеваться над классами коллекции. Лучше создать коллекцию, которую вы хотите вернуть, и принудить другие методы вернуть этот список. –