java单元测试使用jMockit mock私有方法,jmockitmock,jMockit简直是万能
分享于 点击 5041 次 点评:46
java单元测试使用jMockit mock私有方法,jmockitmock,jMockit简直是万能
jMockit简直是万能的,私有方法也可以方便的做Mock。如下是mock私有方法的代码:
要测试的类
package cn.outofmemory.junit.jmockit;public class MockTarget{ private Object privateMethod() { return "Hello Object"; } public String publicMethod() { return (String)this.privateMethod(); }}
测试类:
package cn.outofmemory.junit.jmockit;import mockit.Expectations;import mockit.Injectable;import mockit.MockUp;import mockit.Mocked;import mockit.Mockit;import mockit.NonStrict;import mockit.Tested;public class MockTargetTest { @BeforeClass static public void beforeClass() { Mockit.setUpMocks(); } @Mocked private MockTarget mt; @Test public void testPrivateMethodMock() { new Expectations(mt) { { // 对私有方法进行mock this.invoke(mt, "privateMethod"); result = "Hello Object"; } }; Object actual = mt.publicMethod(); assertEquals(actual,"Hello Object"); }}
jMockit对于私有方法的mock很简单,只需要在使用实例之前通过Expectations(target){{}}
定义要mock的私有方法的返回值即可。
用户点评