現在、ユニットのカスタム JUnit ランナー (各テスト メソッドの前後にカスタム コードを正確に呼び出す) を作成しています。
class MyRunner extends BlockJUnit4ClassRunner {
private MyApi api = new MyApi();
public MyRunner(Class<?> klass) throws InitializationError {
super(klass);
}
// todo
}
ただし、 や などの他のランナーをサポートしたいMockitoJunitRunner
のでSpringRunner
、車輪を再発明する代わりに、次のようにランナーを使用したいと思います (カスタムMyConfig
アノテーションを使用して既存のテスト ランナーを指定します)。
@RunWith(MyRunner.class)
@MyConfig(testRunner=MockitoJUnitRunner.class)
public class MockitoRunnerTest {
}
... また ...
@RunWith(MyRunner.class)
@MyConfig(testRunner=SpringRunner.class)
public class MockitoRunnerTest {
}
これは、テスト ランナーが非常に軽量であることを意味します。つまり、これは Junit ルールに似ており、独自のコードを呼び出した後、別の既存の Junit ランナーにプロキシするだけです。
私の直感は、これはすでに実装/解決されているということです-それを見つけるのに問題があるだけです.
注:これらの問題により、ルールの使用を避けたい -各「@Test」の後および「JUnit の各「@After」の前に「@Rule」を適用する」を参照してください。