9

Java テストから GUI アプリケーションを 2 回起動したいと考えています。@annotationこの場合、どのように使用すればよいでしょうか。

public class Toto { 

    @BeforeClass 
    public static void setupOnce() { 
        final Thread thread = new Thread() {
            public void run() {
               //launch appli
            }
        }; 
        try { 
            thread.start(); 
        } catch (Exception ex) { } 
    }
} 
public class Test extends toto {
    @Test 
    public void test() {
        setuptonce(); 
        closeAppli(); 
    } 

    @test 
    public void test2() 
    {
        setuptonce(); 
    } 
}

もう一度起動するには、どの注釈を使用すればよいですか? @afterclass?

4

2 に答える 2

22

で注釈が付けられた@BeforeClassメソッドは、テスト クラスでテスト メソッドが実行される前に一度実行されることを意味します。で注釈が付けられた@Beforeメソッドは、クラス内のすべてのテスト メソッドの前に 1 回実行されます。これらに対応するものは@AfterClass@Afterです。

おそらく、あなたは次のようなものを目指しています。

@BeforeClass
public static void setUpClass() {
  // Initialize stuff once for ALL tests (run once)
}

@Before
public void setUp() {
  // Initialize stuff before every test (this is run twice in this example)
}

@Test
public void test1() { /* Do assertions etc. */ }

@Test
public void test2() { /* Do assertions etc. */ }

@AfterClass
public static void tearDownClass() {
  // Do something after ALL tests have been run (run once)
}

@After
public void tearDown() {
  // Do something after each test (run twice in this example)
}

@BeforeClassテスト メソッドでメソッドを明示的に呼び出す必要はありません。JUnit が呼び出します。

于 2010-03-18T21:57:02.903 に答える
0

@BeforeClass アノテーションは、テストが実際に実行される前に、何かを 1 回実行するために使用されます。

したがって、取得したいもの (およびその理由) に応じて、起動コードをサイクルでラップするか、起動コードを他のメソッドに移動して別の場所から呼び出すか、別のテスト ケースを記述することができます。

于 2010-03-18T20:51:47.327 に答える