次のように、テストケースをテストスイートに追加しています。
for(String methodName : getPublicDeclaredMethods(TestA.class))
{
this.addTest((new TestA(methodName)));
}
for(String methodName : getPublicDeclaredMethods(TestB.class))
{
this.addTest((new TestB(methodName)));
}
これは、これを行うのと同じです。
this.addTest((new TestA("TEST_METHOD_1")));
this.addTest((new TestA("TEST_METHOD_2")));
this.addTest((new TestB("TEST_METHOD_1")));
this.addTest((new TestB("TEST_METHOD_3"))); // woops I forgot TEST_METHOD_2
メソッド名が構造を介して文字列として提供される、この奇妙なテストフレームワークで立ち往生しています。
上記のコードは、特定のクラスで定義されたすべてのテストケースを追加することを保証します。ただし、代わりに次のようなメソッドが必要です。
void <T> addTestCasesFromClass()
{
for(String methodName : getPublicDeclaredMethods(T.class))
{
this.addTest((new T(methodName)));
}
}
しかし、これがJavaでどのように行われるかはわかりません。それも可能ですか?TestAとTestBは、クラスTestから派生しています。