# PrepareForTest

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

```java
@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](https://blog.tejpratapsingh.com/powermock-understanding-preparefortest)
