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 に答える