在Junit 4中,我可以做类似的事情

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

...

app.getLocalPort()

如何在Junit 5中复制此行为?从this github问题来看,似乎我需要使用@ExtendWith(DropwizardExtensionsSupport.class),但不清楚如何

最佳答案

Dropwizard 1.3.0 added通过引入 DropwizardExtensionsSupport class来支持JUnit5。

具体来说,如果您需要在测试的开始/结束时启动/停止应用程序(这是DropwizardAppRule所做的),则可以使用 DropwizardAppExtension

您的示例,为JUnit5重写:

@ExtendWith(DropwizardExtensionsSupport.class)
public class MyTest {

    public static final DropwizardAppExtension<Config> app = new DropwizardAppExtension<>(MyApp.class);

    ...

       // app.getLocalPort() is also available

}

不幸的是,JUnit5支持doesn't seem to be documented yet

链接:
  • DropwizardExtensionsSupport
  • DropwizardAppExtension
  • DropwizardAppExtension#getLocalPort
  • 08-18 17:10