現在網絡上大部分的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初始化參數 還可以全部使用最新版本