私は@PostConstruct
を使用してテストを実行する前にいくつかの初期設定を行いますが、テストクラスが初期化された後ではなく、すべてのテストで@PostConstruct
メソッドが実行されているようです。また、コンストラクタが@PostConstruct
の前にすべてのテストの前に呼び出されていることもわかります。テストクラスはなぜ@Testメソッドごとに一度ではなく初期化されるのですか?@SpringRunnerは、各テストでクラスを再初期化するのはなぜですか?
私はspring-boot-starter-test:1.5.7.RELEASE
サンプルテストのセットアップ使用しています:出力、 'コンストラクタ' は二度印刷されて
@RunWith(SpringRunner.class)
public class TestClass {
public TestClass() {
System.out.println("constructor");
}
@PostConstruct
public void setup() {
System.out.println("setting up");
}
@Test
public void test1() {
System.out.println("test 1");
}
@Test
public void test2() {
System.out.println("test 2");
}
}
を、二度印刷されて '設定'。 「テスト1」と「テスト2」が1回ずつ印刷されます。
うわー、これはまったく分かりませんでした。私はこれについての説明を見つけようとしていましたが、それはどこにも見つかりませんでした。私は当初、そのクラスが一度インスタンス化されたと考え、各@Testメソッドはインスタンス内で順次呼び出されていました。さて、これがJUnitの標準的なライフサイクルだとわかったので、それは完璧です。ありがとう! –