2011-02-11 43 views
1

我有兩類:JUnit:有沒有辦法跳過屬於Test類的父級的測試?

public abstract class AbstractFoobar { ... } 

public class ConcreteFoobar extends AbstractFoobar { ... } 


我有這兩個類對應的測試類:

public class AbstractFoobarTest { ... } 

public class ConcreteFoobarTest extends AbstractFoobarTest { ... } 


當我運行ConcreteFoobarTest(JUnit中),在AbstractFoobarTest註釋@Test方法得到這些,因爲他們繼承直接宣佈ConcreteFoobarTest一起運行。

無論如何跳過它們嗎?

回答

1

更新:誤解了這個問題

  1. AbstractFoobarTest抽象。 這樣測試方法 AbstractFoobarTest只運行 一次,當ConcreteFoobarTest是 執行。無論如何,你需要一個 混凝土子類來測試中的 方法。
  2. 或者只是刪除AbstractFoobartest和 之間的繼承 ConcreteFoobarTest。無論如何,你不希望 使用它。
+0

謝謝,使得父測試類抽象的伎倆! (你之前的@ignore提示也能工作,但我更喜歡這個) – 2011-02-11 15:41:47

+0

@Jon所以我:-) – 2011-02-11 15:45:29

1

你真的不需要AbstractFoobarTest首先,因爲畢竟你不能創建抽象類的實例,所以,你仍然會依靠你的具體類來測試你的抽象類。

這意味着,您將最終使用您的ConcreteFoobarTest將測試抽象類中的API。因此,你將只有這一點: -

public class ConcreteFoobarTest { ... 
    @Test 
    public void testOne() { 
     ConcreteFoobar cf = new ConcreteFoobar(); 
     // assert cf.conreteAPI(); 
    } 

    @Test 
    public void testTwo() { 
     ConcreteFoobar cf = new ConcreteFoobar(); 
     // assert cf.abstractClassAPI(); 
    } 
} 
0

使用過程變量將允許您遇到這些特殊機構代碼

相關問題