2014-02-14 06:30:02
阅读( 550 )
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的私有方法的返回值即可。
分享给朋友:
亲~ 如果您有更好的答案 可在评论区发表您独到的见解。
您想查看更多的信息:
面试题