2

ParentRunnerを拡張するカスタム テスト ランナーを使用しています。

public class OurTestRunner extends ParentRunner<TestRunnerForOneConfigCase> {...}

class TestRunnerForOneConfigCase extends BlockJUnit4ClassRunner {...}

@RunWith を @RunWith(Parameterized.class) と組み合わせる方法に触発されOurTestRunnerて、テストパラメーターで使用したいと思います。だから私は工場を実装しようとしています:

public class OurTestRunnerFactory implements ParametersRunnerFactory {
  @Override
  public org.junit.runner.Runner createRunnerForTestWithParameters(TestWithParameters test) throws InitializationError {
    return new OurTestRunner(test /* but it takes Class<T> as parameter */); 
  }
}

ただし、OurTestRunnerその親クラスはas パラメーターParentRunnerのみを受け取ります(つまり、パラメーターを受け取りません)。Class<T>TestWithParameters

ParentRunnerと互換性のあるバージョンはありParameterizedますか? そうでない場合、(すべてを書き直すことなく) セットアップを拡張する最も簡単な方法は何ですか?

4

1 に答える 1

0

テスト ランナーは 1 つしか持てませんが、次のような方法で実行できます。

 public class SimpleExampleTest {

    @Rule
    public Generator<String> params =
        new ListGenerator(asList("alpha", "beta", "gamma"));

    @Test
    public void testSomething() throws Exception {
        assertTrue(params.value().length() >= 4);
    }
}
于 2019-08-09T13:19:45.377 に答える