我想模拟一个包含两个静态方法m1和m2的类中的静态方法m1。 我想让方法m1返回一个对象。
我尝试了以下方法
1)
PowerMockito.mockStatic(Static.class, new Answer<Long>() {
@Override
public Long answer(InvocationOnMock invocation) throws Throwable {
return 1000l;
}
});
这里调用了两个返回类型不同的方法m1和m2,导致了返回类型不匹配的错误。
2)PowerMockito.when(Static.m1(param1, param2)).thenReturn(1000l);
但是当执行m1时,该语句并不会被调用。
3)PowerMockito.mockPartial(Static.class, "m1");
会出现编译器错误,提示mockPartial不可用。我在http://code.google.com/p/powermock/wiki/MockitoUsage上找到了这个信息。
@PrepareForTest
注解应该放在调用静态方法的类上,而不是包含静态方法的类上。 - Hazel T@PrepareForTest(ClassWithStatics.class)
是正确的。 - arry36