サービスを開始するには、 を使用することを知っていますnew MyService().run(args)
。それを止める方法は?
テストのためsetUp()
に、プログラムで開始および停止する必要があります。tearDown()
サービスを開始するには、 を使用することを知っていますnew MyService().run(args)
。それを止める方法は?
テストのためsetUp()
に、プログラムで開始および停止する必要があります。tearDown()
新しいスレッドでサービスを開始できます。テストが終了すると、サービスは自動的にシャットダウンします。
ただし、dropwizard 0.6.2 以降では、dropwizard-testing モジュールに、まさにこのユース ケース用のjunit ルールが含まれています (こちらを参照)。
このルールの使用法は次のようになります。
Class MyTest {
@ClassRule
public static TestRule testRule = new DropwizardServiceRule<MyConfiguration>(MyService.class,
Resources.getResource("service.yml").getPath()));
@Test
public void someTest(){
....
変数をそのままenvironment
にして、次のメソッドをアプリケーションに追加します。
public void stop() throws Exception {
environment.getApplicationContext().getServer().stop();
}
myService.stop()
これで、サーバーを停止するために呼び出すことができます。