开发者

PowerMock Mockito: how to mock all static methods?

开发者 https://www.devze.com 2023-02-07 12:27 出处:网络
Do we n开发者_JAVA技巧eed to mock all static methods of a class when using PowerMock (with Mockito)? I mean, suppose we have:

Do we n开发者_JAVA技巧eed to mock all static methods of a class when using PowerMock (with Mockito)? I mean, suppose we have:

class MockMe {
   public static MockMe getInstance(){
              //return new Instance via complex process;
   }

   public static List<X> anotherStaticMethod(){
      // does xyz
   }
}

My question, if I need to mock getInstance method, is it necessary to mock "anotherStaticMethod" as well?

PowerMock version:1.3, Mockito version:1.8


No you can use partial mocking using spy in PowerMockito. Or you can use the stubbing API:

stub(method(MockMe.class, "getInstance")).toReturn(myMockMeInstance);


Mocking Static Method How to mock and stub:

Add @PrepareForTest at class level.

@PrepareForTest(Static.class) // Static.class contains static methods

Call PowerMockito.mockStatic() to mock a static class (use PowerMockito.spy(class) to mock a specific method):

PowerMockito.mockStatic(Static.class);

Just use Mockito.when() to setup your expectation:

Mockito.when(Static.firstStaticMethod(param)).thenReturn(value);
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号