欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java单元测试使用jMockit mock私有方法,jmockitmock,jMockit简直是万能

来源: javaer 分享于  点击 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的私有方法的返回值即可。

相关栏目:

用户点评