2012-08-30 79 views
5

根據this文檔@BeforeClass方法的超類將在那些當前類中運行。但在我的情況下不會發生。不調用父類的@BeforeClass方法

我使用的是junit 4.8.1。

你能告訴我我做錯了嗎?

我的父類看起來是這樣的:

public abstract class AbstractPromoterUnitTest extends TestCase { 
    @BeforeClass 
    public static void setUpOnce() { 
     // Do something here. 
    } 
} 

這孩子:

@RunWith(JUnit4.class) 
public abstract class NormalPromoterUnitTest extends AbstractPromoterUnitTest{ 
    @BeforeClass 
    public static void setUpOnce() { 
     // Do something here 2. 
    } 
} 

NormalPromoterUnitTest.setUpOnce()被調用。 AbstractPromoterUnitTest.setUpOnce()不是。

回答

8

您正在遮蔽抽象類的靜態方法;命名其中一個不同的東西。

+0

啊是的,這是靜態的方法!謝謝! – expert