[英]PowerMock Mockito: how to mock all static methods?
使用PowerMock(与Mockito一起使用)时,我们是否需要模拟类的所有静态方法? 我的意思是,假设我们有:
class MockMe {
public static MockMe getInstance(){
//return new Instance via complex process;
}
public static List<X> anotherStaticMethod(){
// does xyz
}
}
我的问题是,如果需要模拟getInstance方法,是否也必须模拟“ anotherStaticMethod”?
PowerMock版本:1.3,Mockito版本:1.8
不,您可以在PowerMockito中使用间谍使用部分模拟。 或者,您可以使用存根API:
stub(method(MockMe.class, "getInstance")).toReturn(myMockMeInstance);
模拟静态方法如何模拟和存根:
在类级别添加@PrepareForTest
。
@PrepareForTest(Static.class) // Static.class contains static methods
调用PowerMockito.mockStatic()
模拟一个静态类(使用PowerMockito.spy(class)模拟一个特定的方法):
PowerMockito.mockStatic(Static.class);
只需使用Mockito.when()
来设置您的期望:
Mockito.when(Static.firstStaticMethod(param)).thenReturn(value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.