http://blog.jayway.com/2009/05/17/mocking-static-methods-in-java-system-classes/
Чтобы смоделировать метод экземпляра, вы можете просто переопределить его в подклассе.Вы не можете сделать это со статическими методами, потому что нет «статического полиморфизма».
Powermock может сделать это, потому что он работает с байт-кодом, в то время как другие популярные платформы полагаются на полиморфизм и создают подклассы с CGLIB.
По ссылке: «В основном все стандартные фальшивые фреймворки используют CGLib для создания фальшивого объекта, что означает, что они основаны на иерархической модели (CGLib создает подкласс класса для тестирования во время выполнения, который является действительным макетом).объект) вместо модели делегирования, которую PowerMock использует посредством манипуляций с байт-кодом путем делегирования в MockGateway. "