View Javadoc
1   package mockit.integration.junit4;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   
5   import mockit.Mock;
6   import mockit.MockUp;
7   
8   import org.junit.After;
9   import org.junit.BeforeClass;
10  import org.junit.Test;
11  
12  public final class JUnit4DecoratorTest extends BaseJUnit4DecoratorTest {
13      public static final class RealClass2 {
14          public String getValue() {
15              return "REAL2";
16          }
17      }
18  
19      public static final class FakeClass2 extends MockUp<RealClass2> {
20          @Mock
21          public String getValue() {
22              return "TEST2";
23          }
24      }
25  
26      @BeforeClass
27      public static void beforeClassThatRunsSecond() {
28          assertEquals("TEST0", new RealClass0().getValue());
29      }
30  
31      @BeforeClass
32      public static void beforeClassThatRunsFirst() {
33          assertEquals("TEST0", new RealClass0().getValue());
34      }
35  
36      @Test
37      public void useClassScopedMockDefinedByBaseClass() {
38          assertEquals("TEST0", new RealClass0().getValue());
39      }
40  
41      @Test
42      public void setUpAndUseSomeFakes() {
43          assertEquals("TEST1", new RealClass1().getValue());
44          assertEquals("REAL2", new RealClass2().getValue());
45  
46          new FakeClass2();
47  
48          assertEquals("TEST2", new RealClass2().getValue());
49          assertEquals("TEST1", new RealClass1().getValue());
50      }
51  
52      @Test
53      public void setUpAndUseFakesAgain() {
54          assertEquals("TEST1", new RealClass1().getValue());
55          assertEquals("REAL2", new RealClass2().getValue());
56  
57          new FakeClass2();
58  
59          assertEquals("TEST2", new RealClass2().getValue());
60          assertEquals("TEST1", new RealClass1().getValue());
61      }
62  
63      @After
64      public void afterTest() {
65          assertEquals("REAL2", new RealClass2().getValue());
66      }
67  
68      @Test
69      public void classFakedInSecondTestClassMustNotBeFakedForThisTestClass() {
70          assertEquals("REAL3", new SecondJUnit4DecoratorTest.RealClass3().getValue());
71      }
72  }