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