PrepareForTest

Mark this class for bytecode manipulation

Each class you add in @PrepareForTest will generate an different bytecode that can be manipulated by PowerMock.

@RunWith(PowerMockRunner.class)
@PrepareForTest({
    StaticClass.class,
    FinalClass.class,
    ClassWithFinalMethod.class
})
public class ClassToTest {
}

PreparingForTest unlocks class for a wide variety of things such as mocking final classes, classes with final, private, static or native methods that should be mocked and also classes that should be return a mock object upon instantiation.

You can read more about what @PrepareForTest unlocks from here

Last updated