2013-02-27 32 views
2

我使用的測試框架已經加入測試,以測試套件的一個相當奇怪的方式,具體如下:清單上的一類公共方法,而無需創建一個實例

public TestSuiteAll() { 
    super("TestSuiteAll") 

    this.addTest(new TestTypeOld("TEST_EXECUTION")); 
    this.addTest(new TestTypeOld("TEST_COMPLETION_1")); 
    this.addTest(new TestTypeOld("TEST_COMPLETION_2")); 

    this.addTest(new TestTypeNew("TEST_NEW")); 
} 

其中「TEST_EXECUTION」是例如,這是TestTypeOld類中要調用的函數的名稱。

我真的不喜歡這種設計,但我堅持下去。如何列出TestTypeOld中的所有函數,以便我可以添加所有這些函數?

我已經看到一些例子,其中是這樣做:

TestTypeOld testTypeOld = new TestTypeOld(""); 
Class testTypeOldClass = testTypeOld.getClass(); 
Method[] methods = testTypeOldClass.getMethods(); 

但這似乎真的長篇大論。有沒有另外一種方法來做到這一點,我不需要創建一個TestTypeOld的實例。

回答

1

你也可以這樣做:

TestTypeOld.class.getMethods(); 

.class操作檢索表示給定類的類實例。

2

你應該能夠做到這一點:

Method[] methods = TestTypeOld.class.getMethods(); 

這裏與java.util.List工作的例子:

public static void main(String args[]) { 
    Method[] methods = List.class.getMethods(); 
    for(Method method : methods) { 
     System.out.println(method.getName()); 
    } 
} 
1

如何只使用

Methods[] methods = TestTypeOld.class.getMethods(); 

然後,你將不會有創建一個TestTypeOld的實例。

0

使用反射API 例子:

Methods[] methods = TestTypeOld.class.getMethods(); 
相關問題