3

JUnit は静的であることを望ん@BeforeClassでおり、これは JerseyTest のメソッド オーバーライド@AfterClassとうまくいかないことがわかりました。configureJUnit のユーティリティ メソッドにアクセスしながら、Jersey アプリケーションを構成する既知の方法はありますか?

public class MyControllerTest  extends JerseyTest {
  @BeforeClass
  public static void setup() throws Exception {
    target("myRoute").request().post(Entity.json("{}"));
  }
  @Override
  protected Application configure() {
      return new AppConfiguration();
  }
}

したがってbeforeClass、静的である必要がtargetあり、インスタンスメソッドの性質のために呼び出すことはできません。configure代わりにコンストラクターを使用しようとすると、が の後に実行されることが判明しconstructor、これにより setup-request の実行が妨げられ、そのため自然に失敗します。

どんなアドバイスでも大歓迎です、ありがとう!

4

2 に答える 2

1

このような状況で重いセットアップを回避するためにいくつかのケースで行ったことは、ブール値フラグを使用してそのセットアップを条件付きで実行することです。

public class MyControllerTest extends JerseyTest {

  private static myRouteSetupDone = false;

  @Before
  public void setup() throws Exception {
    if (!myRouteSetupDone) {
      target("myRoute").request().post(Entity.json("{}"));
      myRouteSetupDone = true;
    }
  }
  @Override
  protected Application configure() {
      return new AppConfiguration();
  }
}
于 2016-07-29T11:24:30.270 に答える