我想在单元测试中模拟一个遗留对象。这里是构造函数:
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
});
问题来了:
- 我应该用ParameterTypes()放入哪个类
- 我可以把它放在@Beforesetup()中吗
使用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
方法。