1. ホーム
  2. java

[解決済み] setUp()とsetUpBeforeClass()の違いについて

2022-04-24 14:54:22

質問

JUnitでユニットテストを行う場合、似たような方法が2つあります。 setUp()setUpBeforeClass() . これらのメソッドの違いは何ですか?また tearDown()tearDownAfterClass() ?

以下はサインです。

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

解決方法は?

その @BeforeClass@AfterClass アノテーションされたメソッドは、テスト実行中に一度だけ実行されます。 テスト全体の最初と最後で、他のメソッドが実行される前に実行されます。 実際、これらのメソッドはテストクラスが作成される前に実行されます。 static .

@Before@After メソッドはすべてのテストケースの前後に実行されるので、 おそらくテストの実行中に複数回実行されるでしょう。

では、クラス内に3つのテストがあったとすると、メソッド呼び出しの順番は次のようになります。

setUpBeforeClass()

  (Test class first instance constructed and the following methods called on it)
    setUp()
    test1()
    tearDown()

  (Test class second instance constructed and the following methods called on it)
    setUp()
    test2()
    tearDown()

  (Test class third instance constructed and the following methods called on it)
    setUp()
    test3()
    tearDown()

tearDownAfterClass()