Powermock throws ClassNotPreparedException when using JUnit 5

12,404

The MockitoExtension does not support Powermock.

Thus, there is no extension registered that would handle @PrepareForTest(MyUtil.class).

For details on how to use Powermock, visit the project webpage.

Share:
12,404
Priya
Author by

Priya

Updated on June 15, 2022

Comments

  • Priya
    Priya almost 2 years

    I have a sample test class where I want to mock a static class.My build.gradle is like

    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.2.0'
    testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.2.0'
    testRuntime("org.junit.platform:junit-platform-launcher:1.1.1")
    
    testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.0-beta.5'
    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.21.0'
    testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '2.21.0'`
    

    When I try my test case as

    @ExtendWith(MockitoExtension.class)
    @PrepareForTest(MyUtil.class)
    public class MyTest {
    
    @Test
    public void shouldCheckIfSyncTimeIsAboveThreshold() {
        mockStatic(MyUtil.class);
        when(MyUtil.getValue()).thenReturn(5));
     }
    

    But when I run this, I got exception like

    org.powermock.api.mockito.ClassNotPreparedException:
    The class MyUtil not prepared for test
    

    Is there any way that I can achieve the same

  • Ciaran Whyte
    Ciaran Whyte over 3 years
    I have not seen one thing in this documentation that shows how to integrate with JUnit 5.