Jmockit 使用小结 version1.46

使用时要注意版本

jmockit是与junit搭配使用的测试框架每一个版本的jmockit都有对应的junit版本,可以在maven仓库官网查看关系

注意版本变化中方法的弃用

在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初始化参数,例如

复制代码

        
            
                maven-surefire-plugin
                2.0.0 
                
                    
                        -javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
                    
                
            
        
    
复制代码
记得配置jmockit.version

1.44舍弃了Deencapsulation的setfield方法

1.46支持了junit5.4.0

1.47舍弃了Deencapsulation这个类,并移除了@Mocked的stubOutClassInitialization属性

如果mock代码没有执行会报错

mock之后的代码必须要执行,否则就会报错,这种错误有两种情况,一种是没有执行到相应的位置程序就停止了,第二种是mock代码设置不当,导致与被测试的代码有偏差,注意:mock报错时需要注意程序犯错和mock犯错分清

你可能感兴趣的:(java)