我希望 PowerMockito 返回我的空数组列表Foo
s when new ArrayList<Foo>()
被调用,但我不确定如何构造该语句。具体来说,我想要new ArrayList<AnyOtherType>()
像往常一样创建一个新列表。
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到页面中,因此每条数据都存储在请求中:
request.setAttribute("inspectionAjaxDetails", details);
所以我需要一些方法来获得details
,这是一个类型化的 ArrayList,当request
被嘲笑。