编辑: 飞翔的荷兰人 2015-06-24
0

1 2

3 4

5 目录 目录 简介 模拟 伪装 代码覆盖 企业应用 JMockit 官方教程

2 JMockit 测试工具入门 简介 1.

开发人员测试和测试独立、 2. 使用伪装对象进行测试 3. 使用伪装对象进行测试的工具 4. 传统伪装对象的问题 5. 一个例子 6.使用JMockit运行测试 模拟 6. 模拟类型和实例 7. 期望 8. 录制和验证的模式 9. 普通和严格的期望 10. 记录异常的结果 11. 匹配特定实例的调用 12. 对参数值得灵活匹配 13. 定义调用的次数约束 14. 显式验证 15. 捕捉验证时的调用参数 16. 代理:定义自己的结果 17. 级联模拟 18. 部分模拟 19. 捕捉实现类和实例 20. 实例化和注入测试对象 21. 重用期望和验证代码块 22. 其他主题 伪装 23. 伪装方法和伪装类 24. 为测试设置伪装 25. 伪装接口 26. 伪装未被实现的类 JMockit 官方教程

3 目录 27. 调用次数的约束 28. 伪装方法的初始化 29. 使用调用上下文 30. 执行真正的实现部分 31. 在测试时间重用伪装 32. 在测试类和测试套件级别使用伪装 代码覆盖的度量 33. 行覆盖 34. 路径覆盖 35. 数据覆盖 36. 覆盖输出的类型 37. 配置覆盖工具 38. 聚集多个测试结果报告 39. 检测最小的覆盖 40. 在maven项目中激活覆盖 41. 关闭覆盖输出 42. 独立模式 测试企业应用 43. 基于场景的测试 44. 一个例子 JMockit 官方教程

4 目录 简介 1. 自动化开发人员测试和测试独立 2. 使用模拟对象进行测试 3. 使用模拟对象进行测试的工具 4. 常见的使用模拟对象的问题 5. 一个测试用例 i. 使用 Expectations API ii. 使用 Mockups API 6. 使用 JMockit 运行测试用例 i. 使用 JUnit Ant 任务运行测试用例 ii. 使用 Maven 运行测试用例 在这个教程中我们将会通过使用测试用例例子进行 JMockit 可以使用的 API 学习.主要的用 来进行模拟注入的 API是Expectations API.其次是 Mockups API,主要是用来进行解决伪装 使用的,为了避免处理复杂的外部组件. 尽管这个教程比较完整,它仍然不能具体的覆盖所有的已经发布的APIs. 一个完成和详细的 定义关于所有的公开类,方法等 是通过API 文档进行提供的. 每一个版本的工具文档都能够 在 jmockit.github.io/api1x 文件夹下发现, 里面包括了完整的分发zip 文件. 这些主要的库文 件 jmockit.jar (和同等的maven文件中), 包含了 Java 源文件 (包含Javadoc 组件)对于每个 Java IDE都能够轻松的从中获取到 API 源码 和文档. 一个独立的章节包含了代码覆盖测试的工具. 自动化开发人员测试和测试独立 软件测试被软件开发人员编写,用来测试他们自己的代码对于与一个成功的软件开发来说是 非常重要的.这些测试总是被通过使用测试框架来编写的,例如 JUnit 或者 TestNG;

JMockit 拥有同时支持这两种测试框架. 自动化的开发人员测试可以被分为两种类别: 1. 单元测试,被用来测试相对于独立其他系统的一个类或者是一个组件. 2. 集成测试,被用来测试系统操作用由一个单元和它的依赖完成(其他的类/组件将会与这些 测试进行交互). 即使集成测试还包括了与多个单元的交互,特殊的测试可能不关心测试所有的组件,层或者 是其他子系统.这种独立测试代码排除不相关部分的能力是非常有用的. JMockit 官方教程

5 简介 使用模拟对象进行测试 一个通用的和强大的技术用来测试代码在一个独立的环境的被称为模拟.传统上来说一个模 拟对象是一个单独的定义和实现针对单个测试或者相关测试集合的类实例.这个实例在测试 的时候被注入到依赖它的代码中.每一个模拟对象的行为应该在测试代码或者是测试代码使 用的保持一致,因此所有的测试用例都能够通过.然后这不仅仅是模拟对象的唯一功能.在 每一个测试结束断言中,模拟对象还可以添加附加的断言. 在传统的模拟对象工具例如EasyMock, jMock, and Mockito (在下一个章节将会详细介绍)以上 的描述总是成立的.JMockit不仅仅包括这些传统的用法,还包括允许模拟对象的方法和构造 函数,在 实际 (非模拟) 的类中, 用来减少实例化模拟对象在测试和测试环境下传递他们.此外,通过在测试环境下新建的对象将会被执行按照测试定义的模拟的行为,当方法和构造函 数被在实际类中进行调用的时候.使用 JMockit, 原始的已经存在方法或构造函数的实现将会 被临时的模拟进行替换,通常用来作为单个测试用例的时候.这种模拟方式相当的通用,因 此不仅仅是公开的实例方法,而且包括 final 和 static 方法, 包括构造函数都可以被他们的实现 进行替换,因此这些被称为可以模拟. 模拟对于单元测试来说是相当的有用的,但是可以被用来做集成测试.例如你可能需要测试 一个展现层对象,在和他与其他同层的类进行交互的时候,不需要实际依赖于调用到其他系 统层的代码,例如业务逻辑或者是基础架构层. 使用模拟对象进行测试的工具 可以用来作为模拟对象的测试工具包括 EasyMock 和 jMock, 他们都是基于 java.lang.reflect.Proxy, 通过在运行时给定一个对象接口生成一个实现.它还可以通过针对具 体的类通过 基于CGLIB的子类生成. 每一个工具都包含许多 API 来表达在被调用的方法或者 死结尾的预期和校验.很少看到在 JUnit tests中使用像EasyMock/jMock的预期那样的校验代 码,往往是使用 JUnit自己的断言方法. JMockit 有自己定义的期望 API, 和其他的 APIs类似,不过远甚于它们提供了模拟所有类型的 方法,构造函数和类型的能力(接口,抽象类,最终的或非最终类,从JRE中的类,枚举等). 有其他组的伪装工具工具,依赖于显示的期望验证而不是隐式的验证: Mockito 和 Unitils Mock. 这些伪装apis的通用特征是他们直接使用对伪装对象的调用来定义期望. 在EasyMock 和 jMock的案例中, 这些调用只能在测试单元下进行调用, 在所谓的测试录制阶段. 在 Mockito 和 Unitils Mock的案例中, 在其他方面,调用甚至能够爱测试单元之后进行. (录制 和再重放阶段之间T,在测试单元真实执行他们所模拟的调用时.) JMockit提供验证API, 一个 对期望 API的自然扩展, 能够允许显示的验证期望在验证阶段. 使用传统的模拟对象的问题 JMockit 官方教程

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题