Печально, но аннотация org.junit.runner.RunWith позволяет указать только один Runner. Мы не можем указать два или более runner-ов, что весьма грустно. Но что же делать, если мы хотим использовать Mockito и junit4-dataprovider одновременно? Как нам указать org.mockito.runners.MockitoJUnitRunner и com.tngtech.java.junit.dataprovider.DataProviderRunner вместе?
Если мы хотим использовать два подобных runner-а одновременно, то нам нужно один из них указать в @RunWith, а второй инициализировать вручную. Например, вот так:
1 2 3 4 5 6 7 8 9 10 |
@RunWith(DataProviderRunner.class) public class SuperServiceImplTest { @Before public void init() { MockitoAnnotations.initMocks(this); } // ... some tests } |
А ещё лучше использовать для этого правила JUnit, которые, правда, успели уже устареть:
1 2 3 4 5 6 7 8 |
@RunWith(DataProviderRunner.class) public class ComepaySignatureServiceImplTest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); // ... some tests. } |
Вроде всё. Вы там держитесь. Да прибудет с вами Сила!