PowerMock allows you to unit test code normally regarded as untestable.
For instance it is
possible to mock static methods, remove static initializers,
allow mocking without dependency injection and more.
PowerMock works by bytecode manipulation.
PowerMock also contain some utilities that gives you easier access to
an objects internal state.
PowerMock can be used to test otherwise untestable code and also to achieve
a cleaner separation between test and production code.