2

我想在我的单元测试中模拟一个遗留对象。这是构造函数:

public Class LegacyClass{
    public LegacyClass(Object... obj) {
        super(obj);
    }
}

我尝试使用 powerMock 来模拟它,如下所示:

whenNew(LegacyClass.class).withParameterTypes(Object.class).
withArguments(anyString(), anyString()).thenAnswer(new Answer<Object>(){
...//Answer impl code
});

这里有问题:

  1. 我应该使用ParameterTypes()放入哪个类?
  2. 我可以把它放在@Before setup() 中吗?
4

1 回答 1

3

用于Object[].class访问 varargs 参数的参数类型:

PowerMockito.whenNew(LegacyClass.class)
            .withParameterTypes(Object[].class)
            .withArguments(Mockito.anyString(), Mockito.anyString())
            .thenAnswer(new Answer<Object>() {
                public Object answer(InvocationOnMock invocation)
                        throws Throwable {
                    // your code
                }
            });

我进行了测试,这也适用于该@Before方法。

于 2013-06-29T04:55:45.300 回答