2011-08-25 62 views
2

我在eclipse中編寫了一些junit測試,我需要在測試之前做一些耗時的設置。出現了@BeforeClass應該是這樣做的方式。我目前在具有2個@Test函數的類上測試過。@BeforeClass在eclipse中爲同一個類運行多次

當我在eclipse中右鍵單擊一個類並選擇「運行方式」 - >「JUnit測試」時,我可以看到@BeforeClass在兩個函數之前執行。

我甚至試圖將@BeforeClass改爲@Before並存儲在一個布爾值中,不管我們是否已經執行過這個函數,但是看起來eclipse從同一個類創建了兩個類對象,每個測試運行一個,也沒有幫助。

那麼,即使我有很多測試,我應該怎麼做只有一次設置功能?或者,當我嘗試運行測試時,只是錯誤地使用了eclipse?

的設置是這樣的:

public class SuperClass { 
    @BeforeClass 
    public void { // do timeconsuming setup } 
} 

public class TestClass extends SuperClass { 
    @Test 
    public void test1() { // perform first test } 
    @Test 
    public void test2() { // perform second test } 
} 

回答

4

製作靜態與BeforeClass註釋的方法可以是溶液:

@BeforeClass 
public static void 
+1

其實我曾使用靜態忘了,包括它在小示例代碼。但是,無論如何,這指出了我的修復,我從非靜態構造函數中調用了另一個函數,使得該函數靜態地修復了它。對不起,沒有把整個代碼放在這裏,它太多了。 – Zitrax

4

@BeforeClass方法應該是靜態爲了只執行一次。

相關問題