2017-11-30 转自:http://blog.csdn.net/foreverling/article/details/51234149

目录

1 基本概念
  1.1 常用注解
  1.2 常用的类
2 实例演示
  2.1 Status-based
    2.1.1 实例1:Mocked - 被Mock修饰的对象,对应的类和实例都会受影响
    2.1.2 实例2:injectable - 仅Mock被修饰的对象
    2.1.3 实例3:Delegate - 自己指定返回值,适合那种需要参数决定返回值的场景
  2.2 Behavior-based
    2.2.1 实例1:Mock对象公有方法
    2.2.2 实例2:Mock对象私有方法
    2.2.3 实例3:Mock接口

源代码:JMockitTest.zip

JMockit教程:http://jmockit.org/tutorial.html

 

1 基本概念


 

 返回

1.1 常用注解

  • @Mocked:被修饰的对象将会被Mock,对应的类和实例都会受影响(同一个测试用例中)
  • @Injectable:仅Mock被修饰的对象
  • @Capturing:可以mock接口以及其所有的实现类
  • @Mock:MockUp模式中,指定被Fake的方法

1.2 常用的类

  • Expectations:期望,指定的方法必须被调用
  • StrictExpectations:严格的期望,指定方法必须按照顺序调用
  • NonStrictExpectations:非严格的期望,是否调用和顺序不作要求
  • Verifications:验证,一般配合NonStrictExpectations来使用
  • Invocation:工具类,可以获取调用信息
  • Delegate:自己指定返回值,适合那种需要参数决定返回值的场景,只需指定匿名子类就可以。
  • MockUp:模拟函数实现
  • Deencapsulation:反射工具类

2 实例演示


 

 返回

现有两个类作为测试对象: SimpleTool.java、UseSimpleTool.java
SimpleTool.java代码如下:

public class SimpleTool {
    public String fun1(String str) {
        return "real: public String fun1(" + str + ")";
    }

    private String fun2(String str) {
        return "real: private String fun2(" + str + ")";
    }

    public String fun3(String str) {
        return "real: public String fun3(" + str + ")";
    }

    public String fun4(String str) {
        return fun2(str);
    }
}
View Code

相关文章:

  • 2021-08-23
  • 2021-10-17
  • 2021-12-26
  • 2021-04-18
  • 2022-12-23
  • 2022-01-17
  • 2021-08-14
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
  • 2021-10-27
  • 2021-10-31
  • 2021-08-03
  • 2022-02-19
相关资源
相似解决方案