我将测试用例添加到测试套件中,如下所示:
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 类。