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"); } }