网站:http://jmockit.org/index.html
maven依赖
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.37</version>
<scope>test</scope>
</dependency>
测试方法执行的三个阶段:
1) 记录Mock类型/实例上的一个或多个调用。
2) 测试的生产代码/类/单元被执行。
3) 明确地验证在执行期间对Mock的方法/构造函数的具体调用实际上是否发生(或不是)。
1. 常用注解
@Tested:自动创建被测对象,其依赖关系自动被Mock/真实实例填充。测试类可以为测试对象声明一个或多个字段/真实实例填充。
@Injectable:只有分配给被修饰对象的实例才会Mock。
@Mocked:被修饰的对象将会被Mock,对应的类和实例都会受影响(同一个测试用例中)。
@Capturing:可以mock接口以及其所有的实现类。
@Mock:标记了伪类中的那些方法,MockUp <T>子类可以用作指定类型“T”(包括最终类,具有静态方法的类等)的通用Fake实现。MockUp模式中,指定被Fake的方法。
NonStrictExpectations:非严格的期望,是否调用和顺序不作要求
Verifications:验证,一般配合NonStrictExpectations来使用
Invocation:工具类,可以获取调用信息
Delegate:自己指定返回值,适合那种需要参数决定返回值的场景,只需指定匿名子类就可以。
MockUp:模拟函数实现
Deencapsulation:反射工具类
maven依赖
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.37</version>
<scope>test</scope>
</dependency>
测试方法执行的三个阶段:
1) 记录Mock类型/实例上的一个或多个调用。
2) 测试的生产代码/类/单元被执行。
3) 明确地验证在执行期间对Mock的方法/构造函数的具体调用实际上是否发生(或不是)。
1. 常用注解
@Tested:自动创建被测对象,其依赖关系自动被Mock/真实实例填充。测试类可以为测试对象声明一个或多个字段/真实实例填充。
@Injectable:只有分配给被修饰对象的实例才会Mock。
@Mocked:被修饰的对象将会被Mock,对应的类和实例都会受影响(同一个测试用例中)。
@Capturing:可以mock接口以及其所有的实现类。
@Mock:标记了伪类中的那些方法,MockUp <T>子类可以用作指定类型“T”(包括最终类,具有静态方法的类等)的通用Fake实现。MockUp模式中,指定被Fake的方法。
2. 常用的类
Expectations:期望,指定的方法必须被调用
StrictExpectations:严格的期望,指定方法必须按照顺序调用NonStrictExpectations:非严格的期望,是否调用和顺序不作要求
Verifications:验证,一般配合NonStrictExpectations来使用
Invocation:工具类,可以获取调用信息
Delegate:自己指定返回值,适合那种需要参数决定返回值的场景,只需指定匿名子类就可以。
MockUp:模拟函数实现
Deencapsulation:反射工具类