Search code examples
javadropwizardjunit5junit-rule

How do I replace DropwizardAppRule in Junit5


In Junit 4 I could do something like

@ClassRule
public DropwizardAppRule<Configuration> app = new DropwizardAppRule<>(MyApp.class);

...

app.getLocalPort()

How do I replicate this behavior in Junit 5? From this github issue it seems like I need to use @ExtendWith(DropwizardExtensionsSupport.class), but its unclear how


Solution

  • Dropwizard 1.3.0 added JUnit5 support by introducing the DropwizardExtensionsSupport class.

    Specifically, if you need to start / stop the application at the beginning / end of your tests (which is what DropwizardAppRule does), there's a DropwizardAppExtension available.

    Your example, rewritten for JUnit5:

    @ExtendWith(DropwizardExtensionsSupport.class)
    public class MyTest {
    
        public static final DropwizardAppExtension<Config> app = new DropwizardAppExtension<>(MyApp.class);
    
        ...
    
           // app.getLocalPort() is also available
    
    }
    

    Unfortunately, the JUnit5 support doesn't seem to be documented yet.

    Links: