1. ホーム
  2. java

[解決済み] Junit - セットアップメソッドを一度実行する

2022-07-02 13:07:52

質問

私はいくつかのテストを含むクラスを設定しました。 @Before を使用するのではなく、すべてのテストの前に一度だけ実行されるセットアップメソッドを持ちたいと思います。Junit 4.8でそれは可能でしょうか?

どのように解決するのですか?

私も @assylias さんと同意見ですが @BeforeClass を使うのは古典的な解決法ですが、常に便利というわけではありません。でアノテーションされたメソッドは @BeforeClass でアノテーションされたメソッドは静的でなければなりません。テストケースのインスタンスを必要とするようなテストでは、 これは非常に不都合なことです。たとえば Spring ベースのテストでは @Autowired を使用して、Spring のコンテキストで定義されたサービスを操作します。

この場合、私は個人的に通常の setUp() でアノテーションされた @Before アノテーションを付け、カスタム static (!) boolean のフラグを立てます。

private static boolean setUpIsDone = false;
.....
@Before
public void setUp() {
    if (setUpIsDone) {
        return;
    }
    // do the setup
    setUpIsDone = true;
}