4

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

4

1 回答 1

7

我想出了这个。

您可以做的是createTest()在 BlockJUnit4ClassRunner 中覆盖,并将结果传递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);
}
于 2012-09-07T22:25:37.143 回答