> For the complete documentation index, see [llms.txt](https://notes.tejpratapsingh.com/_/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.tejpratapsingh.com/_/java-testing/powermockito/preparefortest.md).

# 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)
