PowerMock Mockito:如何模拟所有静态方法?
在使用PowerMock(使用Mockito)时,我们是否需要模拟类的所有静态方法? 我的意思是,假设我们有:
class MockMe { public static MockMe getInstance(){ //return new Instance via complex process; } public static List 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(类)来模拟特定方法):
PowerMockito.mockStatic(Static.class);
只需使用Mockito.when()
来设置您的期望:
Mockito.when(Static.firstStaticMethod(param)).thenReturn(value);