JMock的使用一


JMockit Quick Tutorial
https://github.com/ajermakovics/eclipse-jmockit-assist/wiki/JMockit-Quick-Tutorial-%28Cheat-sheet%29


1. 用new MockUp方法打桩
    import mockit.Mock;  
    import mockit.MockUp;  
    import mockit.Mockit;  
      
    import org.junit.After;  
    import org.junit.Before;  
    import org.junit.Test;  
      
      
    public class BizTest2 {  
      
        @Before  
        public void setUp() throws Exception {  
            new MockUp<Common>(){  
                //mock 构造方法  
                @Mock  
                public void $init(){  
                    System.out.println("Mock init()");  
                }  
                  
                //mock public 方法  
                @Mock  
                public void doA(){  
                    System.out.println("mock doA()");  
                }  
                  
                //mock public static 方法  
                @Mock   
                public  void doB(){  
                    System.out.println("mock doB()");  
                }  
                  
                //mock private 方法 这里也需声明为public  
                @Mock  
                public void doC(){  
                    System.out.println("mock doC()");  
                }  
            };  
              
            new MockUp<Single>(){  
                //mock单例方法  
                @Mock  
                public void doA(){  
                    System.out.println("mock single doA()");  
                }  
            };  
        }  
      
        @After  
        public void tearDown() throws Exception {  
            Mockit.tearDownMocks();  
        }  
      
        @Test  
        public void testCallCommon() {  
            new Biz().callCommon();  
        }  
      
        @Test  
        public void testCallSingle() {  
            new Biz().callSingle();  
        }  
      
    }  


2. 用Mockit.redefineMethods方法打桩

    import mockit.Mockit;  
      
    import org.junit.After;  
    import org.junit.Before;  
    import org.junit.Test;  
      
      
    public class BizTest3 {  
      
        @Before  
        public void setUp() throws Exception {  
            Mockit.redefineMethods(Common.class, MockCommon3.class);  
            Mockit.redefineMethods(Single.class, MockSingle3.class);  
        }  
      
        @After  
        public void tearDown() throws Exception {  
            Mockit.tearDownMocks();  
        }  
      
        @Test  
        public void testCallCommon() {        
            new Biz().callCommon();  
        }  
      
        @Test  
        public void testCallSingle() {         
            new Biz().callSingle();  
        }  
    }  
      
    class MockCommon3 {  
        public void $init(){  
            System.out.println("mock constructor");  
        }  
        public void doA(){  
            System.out.println("mock doA");  
        }  
        public void doB(){  
            System.out.println("mock doB");  
        }  
        public void doC(){  
            System.out.println("mock doC");  
        }  
    }  
    class MockSingle3 {  
        public void doA(){  
            System.out.println("mock single doA");  
        }  
    }  


3. 用Mockit.setUpMock方法打桩

    import mockit.Mock;  
    import mockit.MockClass;  
    import mockit.Mockit;  
      
    import org.junit.After;  
    import org.junit.Before;  
    import org.junit.Test;  
      
      
    public class BizTest4 {  
      
        @Before  
        public void setUp() throws Exception {  
            Mockit.setUpMock(Common.class, MockCommon4.class);  
            Mockit.setUpMock(Single.class, MockSingle4.class);  
        }  
      
        @After  
        public void tearDown() throws Exception {  
        }  
      
        @Test  
        public void testCallCommon() {  
            new Biz().callCommon();  
        }  
      
        @Test  
        public void testCallSingle() {  
            new Biz().callSingle();  
        }  
      
    }  
    @MockClass(realClass = Common.class)  
    class MockCommon4 {  
        @Mock  
        public void $init(){  
            System.out.println("mock constructor");  
        }  
        @Mock  
        public void doA(){  
            System.out.println("mock doA");  
        }  
        @Mock  
        public void doB(){  
            System.out.println("mock doB");  
        }  
        @Mock  
        public void doC(){  
            System.out.println("mock doC");  
        }  
    }  
    @MockClass(realClass = Single.class)  
    class MockSingle4 {  
        @Mock  
        public void doA(){  
            System.out.println("mock single doA");  
        }  
    }  

猜你喜欢

转载自ssh-2009-126-com.iteye.com/blog/1819943