PowerMocking方法并尝试获取此方法的结果

时间:2015-03-04 14:26:14

标签: java junit mocking mockito powermock

我正在尝试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

第二件事是我不确定我的方法是否有用......

感谢您提供任何建议或答案!

0 个答案:

没有答案