PowerMock, mock a static method, THEN call real methods on all other statics
Solution 1:
What are you looking for is called partial mocking.
In PowerMock you can use mockStaticPartial method.
In PowerMockito you can use stubbing, which will stub only the method defined and leave other unchanged:
PowerMockito.stub(PowerMockito.method(StaticUtilClass.class, "someStaticMethod")).toReturn(5);
also don't forget about the
@PrepareForTest(StaticUtilClass.class)
Solution 2:
Though I'm late to the party, but we can achieve partial mocking and override the default behavior of mocked object by explicitly specifying it.
Below example show how we can make PowerMockito
to call real methods if behavior isn't defined explicitly:
e.g. PowerMockito.mockStatic(MyClass.class, new CallsRealMethods());