2012-01-31 65 views
4

我安排使用每個方法一個內部類我的JUnit測試描述:如何運行所有的內部類的JUnit測試一次

Here, in a haacked article (about nunit testing)
Here, in this SO question

public class TestMyThing { 

    public static class TestMyThingMethodOne { 

     @Test 
     public void testMethodOneDoesACertainBehaviour() { 
      // terse, clear testing code goes here 
     } 

     @Test 
     public void testMethodOneHasSomeOtherDesiredBehaviour() { 
      // more inspiring testing code here 
     } 
    } 

    public static class TestMyThingMethodTwo { 
     ... etc 
    } 
} 

然而,當我嘗試爲此運行junit測試,Eclipse會問我要運行哪些內部類測試,並且我只能選擇其中一個。有沒有一種方法可以指定我希望TestMyThing類的每個內部類中的每個測試都能運行?

回答

6

我在this post的Eclipse論壇上問過我的問題,事實證明Eclipse有可能運行所有內部類。我引用的回覆,我已經試過,可以確認它的偉大工程(即我可以用一個命令調用所有的測試中我的內部類):

JUnit 4中帶有封閉稱爲亞軍類,它可以滿足你的需求。

註釋與 @RunWith(Enclosed.class) 與封閉外部類= 進口org.junit.experimental.runners.Enclosed;

3

通常,您只需創建單獨的類(只是使用默認構造函數的pojos),而不是將不同的單元測試打包到單個類中。由於你的內部類是靜態的,這樣做並沒有真正的優勢。

+0

+1。而且你可以添加這樣一個事實,即大多數工具,即maven,ant,Eclipse都不能很好地處理這個問題。 – 2012-01-31 13:18:00

+1

嗯,好的。不好意思,Eclipse不能很好地處理它,因爲它非常好,整齊,並且一起保存了一個方法的所有測試,而對於一個類的所有測試仍然只有一個類。我感興趣的是,當你說「通常你會創建單獨的類......」你是否指我測試的每種方法都有單獨的類?當你說「不同的單元測試」時,你如何定義它?是一個單元測試你爲一種方法做的所有測試嗎?感謝您的回答:) – Joe 2012-01-31 21:52:22

+0

我傾向於爲每個測試課程創建單獨的測試課程。如果需要的話,還可以添加一些額外的測試類。 – 2012-02-01 06:28:04

相關問題