现在网络上大部分的Jmockit文章都停留在1.35及以前的版本,大部分的操作都是用Deencapsulation这个类进行的,如果你的项目用的都是junit4,那你可以用1.19版本结合网上的文章进行简单的操作
1.25删除了NonStrictExpectations
Jmockit是在1.26版本才正式开始支持junit5的初始版本的
1.33可用的@Injectable和@Tested声明对象会被注入到@Tested对象中,无论是否有fullyInitialized的声明,静态成员除外
Jmockit1.36舍弃了Deencapsulation的invoke方法,Jmockit中文网的作者建议使用这个版本的Jmockit
1.36移除了StrictExpectations类
1.40JMockit现在需要JDK 1.7+来执行测试。删除了对JDK 1.6的支持
1.41添加了对@Tested
在JUnit 4/5测试方法参数中作为元注释使用的支持。
1.42JMockit现在需要使用“ -javaagent
”JVM初始化参数,例如
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.0.0</version> <!-- or some other version --> <configuration> <argLine> -javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar </argLine> </configuration> </plugin> </plugins> </build>
记得配置jmockit.version
1.44舍弃了Deencapsulation的setfield方法
1.46支持了junit5.4.0
1.47舍弃了Deencapsulation这个类,并移除了@Mocked的stubOutClassInitialization属性
关于新版本舍弃Deencapsulation之后的操作问题请看我空间的另一篇文章
推荐组合 junit4.13+jmockit 1.19 junit 5.20+jmockit1.41 junit5.52+jmockit1.46 需要使用JVM初始化参数 还可以全部使用最新版本