?????????з?????
???????ClassMocked???е?getTripleString(int)????????????????е?multiply3(int)????????????????????·????Mock??
@Test
public void testMockPrivateMethod() throws Exception {
final ClassMocked obj = new ClassMocked();
new NonStrictExpectations(obj) {
{
this.invoke(obj?? "multiply3"?? 1);//?????з??????????????????this.invoke(null?? "multiply3")
result = 4;
}
};
String actual = obj.getTripleString(1);
assertEquals("4"?? actual);
new Verifications() {
{
this.invoke(obj?? "multiply3"?? 1);
times = 1;
}
};
}
????????Mock???????????????
???????????EasyMock??PowerMock??Mock?????????JDK/CGLIB????????????????????????л????????????????java??????????У?????????е????????????????????е???????????Mock?????????????????????????????????????Щ?????????????????????????????????Mock????????????в?????JMockit????????Mocked??????????????????????????£?
?????????????
public class ClassMocked {
private String name = "name_init";
public String getName() {
return name;
}
private static String className="Class3Mocked_init";
public static String getClassName(){
return className;
}
}
???????JMockit????????????
@Test
public void testMockPrivateProperty() throws IOException {
final ClassMocked obj = new ClassMocked();
new NonStrictExpectations(obj) {
{
this.setField(obj?? "name"?? "name has bean change!");
}
};
assertEquals("name has bean change!"?? obj.getName());
}
???????JMockit???t??????????
@Test
public void testMockPrivateStaticProperty() throws IOException {
new NonStrictExpectations(Class3Mocked.class) {
{
this.setField(ClassMocked.class?? "className"?? "className has bean change!");
}
};
assertEquals("className has bean change!"?? ClassMocked.getClassName());
}
????(2).????????Mock?????
????JMockit???????????Mock?????????EasyMock??PowerMock?????????????????????????????????????????JMockit?????????Mock????????д???????????????????????????????????в????????????????????JMockit????????Mock??
?????????????????£?
public class StateMocked {
public static int getDouble(int i){
return i*2;
}
public int getTriple(int i){
return i*3;
}
}
??????д????????????
@Test
public void testMockNormalMethodContent() throws IOException {
final StateMocked obj = new StateMocked();
new NonStrictExpectations(obj) {
{
new MockUp<StateMocked>() {//???MockUp?????????????????
@Mock
public int getTriple(int i) {
return i * 30;
}
};
}
};
assertEquals(30?? obj.getTriple(1));
assertEquals(60?? obj.getTriple(2));
Mockit.tearDownMocks();
}
????????????????????
?????????д?????????????????????????????????????????????????????????????????????@Mock????????????£?
public class StaticMocked {
@Mock
public static int getDouble(int i){
return i*20;
}
}
??????????????£?
@Test
public void testDynamicMockStaticMethodContent() throws IOException {
Mockit.setUpMock(StateMocked.class?? StaticMocked.class);
assertEquals(20?? StateMocked.getDouble(1));
assertEquals(40?? StateMocked.getDouble(2));
Mockit.tearDownMocks();
}
????JMockit??PowerMock???????????????
????????PowerMock??????????????????@RunWith(PowerMockRunner.class)?????????????PowerMock????е?????????JMockit????????@RunWith????????????????????л?????PowerMock??JMockit???JMockit??????????????????????鯔?????????????????л???PowerMock??JMockit??
????????JMockit???????????JVM classpath????Junit???λ???????????Maven???????????JMockit????Junit??棬???????????JMockit?????????
???????JMockit??????????????
????????JMockit???JavaSE5?е?java.lang.instrument??????????????????????????????????????????????????????????????JMockit coverage???У????????Eclemma?????maven+sonar????????????????????????????·?????
????(1).Eclemma????????
?????????????Eclemma????????????????????????Eclemma????????????????н??????????????-javaagent??????????????£?
??????Eclipse????????Coverage as ->Coverage Configurations??????Junit??JVM???????£?
????-javaagent:"${settings.localRepository}"/com/googlecode/jmockit/jmockit-coverage/0.999.24/jmockit-coverage-0.999.24.jar
????????${settings.localRepository}??maven??????????磺
????-javaagent:D:userdataadministrator.m2 epositorycomgooglecodejmockitjmockitcoverage

主站蜘蛛池模板: 日本欧美一区二区三区在线 | 日韩在线视频第一页 | 国产免费观看嫩草影院 | 中国成人免费视频 | 日本一区二区三区高清福利视频 | 看全色黄大色大片免费久久怂 | 午夜剧场免费观看 | 一个人看www在线是免费 | 骚片在线观看 | 亚洲综合色秘密影院秘密影院 | 日韩欧美国产亚洲 | 最近中文字幕更新免费 | 欧美les视频xxxx在线观看 | 午夜三级成人三级 | 国产第二十三页浮力影院 | 欧美激情亚洲精品日韩1区2区 | 免费视频亚洲 | 久久天堂 | 在线综合+亚洲+欧美中文字幕 | 北条麻妃国产九九九精品视频 | 国产黄a三级三级看三级 | 男女啪啪搓胸gif动态图 | 亚洲欧美日产综合一区二区三区 | 网站在线观看 | 第一页综合| 亚洲综合91| 免费看v片网站 | 日韩在线一区二区 | 欧美a站| 男人操女人在线观看 | 国内体内she精视频免费 | a级毛片无码免费真人 | 天天摸天天爽视频69视频 | 亚洲人成网站在线播放观看 | 天天操天天干天天操 | 北条麻妃国产九九九精品视频 | 一男一女下面一进一出性视频 | 中国一及黄色片 | 久久久免费的精品 | 黄色在线观看视频网站 | 国产97公开成人免费视频 |