Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 276
David says Reinstate Monica Avatar asked Sep 13 '18 19:09

David says Reinstate Monica


1 Answers

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:

  • DropwizardExtensionsSupport

  • DropwizardAppExtension

  • DropwizardAppExtension#getLocalPort

like image 135
Alex Shesterov Avatar answered Oct 24 '22 23:10

Alex Shesterov