我正在尝试PowerMock一种我正在测试的方法。
我对这种方法的了解:它有5个参数,我可以从中产生影响,我想测试其中的3个。另外两个论点必须明确给出。
其他重要信息 - 此方法返回List
,但有点扭曲,如:
public static final <T extends SomeInterface> List<T> getComponents(arg,arg,arg,arg,arg)
但这会奏效:
List list = ListFetcher.getComponents(arg,arg,arg,arg,arg)
现在进行嘲弄。现在它看起来像这样:
private ListFetcher mockListFetcher(Date dateFrom, Date dateTo, ComponentContext context) throws ThisAppBusinessException {
PowerMockito.mockStatic(ListFetcher.class);
PowerMockito.when(ListFetcher.getComponents(ExplicitlyGivenString1, context, dateFrom, dateTo, ExplicitlyGivenString2)).thenAnswer(
new Answer() {
@Override
public List answer(InvocationOnMock invocation) {
Object[] arg = invocation.getArguments();
return (List)(Object) arg;
}
});
return null;
}
当我试图将结果作为List
时,Eclipse正在燃烧RED。
当我使用构造return (List)(Object) arg;
时,Eclipse中没有警告或错误,但是当我尝试运行测试时,我得到:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.List
第二件事是我不确定我的方法是否有用......
感谢您提供任何建议或答案!