View Javadoc
1   package mockit.integration.junit4;
2   
3   import static org.junit.jupiter.api.Assertions.assertNotNull;
4   import static org.junit.jupiter.api.Assertions.assertNull;
5   import static org.junit.jupiter.api.Assertions.assertTrue;
6   
7   import java.lang.annotation.Annotation;
8   import java.util.List;
9   
10  import mockit.Injectable;
11  import mockit.Mocked;
12  
13  import org.junit.Before;
14  import org.junit.Test;
15  import org.junit.runner.RunWith;
16  import org.junit.runners.BlockJUnit4ClassRunner;
17  import org.junit.runners.model.InitializationError;
18  
19  @RunWith(JUnit4CustomRunnerTest.CustomRunner.class)
20  public final class JUnit4CustomRunnerTest {
21      public static final class CustomRunner extends BlockJUnit4ClassRunner {
22          public CustomRunner(Class<?> testClass) throws InitializationError {
23              super(testClass);
24          }
25  
26          @Override
27          protected void validatePublicVoidNoArgMethods(Class<? extends Annotation> annotation, boolean isStatic,
28                  List<Throwable> errors) {
29          }
30  
31          @Override
32          protected Object createTest() throws Exception {
33              testCount++;
34              return super.createTest();
35          }
36      }
37  
38      static int testCount;
39  
40      @Before
41      public void setUp() {
42          assertTrue(testCount == 1 || testCount == 2, "Unexpected test count: " + testCount);
43      }
44  
45      @Test
46      public void withAnnotatedParameters(@Mocked Runnable runnable, @Injectable Dependency dep) {
47          assertNotNull(runnable);
48          assertNotNull(dep);
49      }
50  
51      @Test
52      public void withNonAnnotatedParameters(Runnable runnable, Dependency dep) {
53          assertNull(runnable);
54          assertNull(dep);
55      }
56  }