如何获取测试类实例JUnit从ClassRunner内部运行测试用例?

时间:2012-07-16 18:38:42

标签: java reflection junit

我有一个扩展BlockJUnit4ClassRunner的自定义测试运行器,我想获得在我的自定义测试运行器中的BlockJUnit4ClassRunner中实例化的测试类的实例。

1 个答案:

答案 0 :(得分:7)

我想出了这个。

您可以在BlockJUnit4ClassRunner中覆盖createTest(),并将super.createTest()的结果传递给您选择的方法。例如:

public class CustomTestRunner extends AbstractTestRunner {

    @Override
    public abstract void prepareTest(final Object test) {
     // have your way with the test object
    }
}

public abstract class AbstractTestRunner extends BlockJUnit4ClassRunner {

    @Override
    public Object createTest() throws Exception {
         Object test = super.createTest();
         prepareTest(test);
         return test;
    }

    public abstract void prepareTest(final Object test);
}