接口测试与Web测试.ppt
文本预览下载声明
接口测试与Web测试 第七讲 接口测试框架Jmock Web测试框架JWebUnit 本章内容 Why Mock Object 单元测试 Mock Object 简单 粒度小 独立 系统部件 网络连接 Java容器 Mock Object简介 功能:模拟外部依赖,解除耦合因素 1 原理:用反射机制,动态创建虚拟对象 2 工作方式:和Junit配合使用 3 庐山真面目:验证参数返回值调用次数 4 Mock object功能说明 依赖关系 期望结果 系统环境 协作软件 模拟数据库连接、网络连接代替真正的连接 eg.验证JDBC连接在使用结束后关闭(在特定时刻调用 java.sql.Connection 中的 close ) eg.模拟JDBC驱动程序抛出的 SQLException 类 尚未开发完成的协作模块,提供接口定义,检查是否按规定的次数和参数调用了指定方法 JMock简介 最新稳定版本2.5.1 比其它Mock工具更正式、更强大 引进参数匹配:hamcrest.Matchers 返回值更丰富returnValue、returnIterator 设置调用次数、时序(自动机、序列) 自动验证 与JUnit良好集成 语法稍显复杂 下载地址: /downloads/jmock-2.6.0-jars.zip Mock可能导致的问题 掩盖 滥用 脆弱 混乱 可能隐藏所mock的协作软件中的缺陷和错误,集成测试必不可少 为了能使用mock测试可能会导致滥用Interface,只有1个implement的interface是不提倡的 属于白盒测试,要非常熟悉类的内部联系,对方法的合理修改可能破坏mock测试 可能给测试代码带来混乱,最好使用mock的地方都加上注释,如果协作软件完成了开发可以替换mock部分 When Mock 具有不可确定行为 非常难创建(含不存在情况) 某些行为难以触发 有用户界面 令运行速度大大减慢 需要确定如何被调用 真实对象 JMock小结 Expectation+hamcrest的匹配器,功能非常强大,灵活但复杂,用时须花费一定精力 好处 有效地加快单元测试的创建和执行过程 ,最大限度代码保证代码不含有基础错误 不足 功能上有一定限制,对final class和multiThread支持有限;滥用Mock可带来许多副作用 特点 代码覆盖率统计工具 EclEMMA——简单查看测试效果 定义:执行测试代码,检查被测代码执行覆盖情况 出处:JCoverage的衍生版本,Eclipse+EMMA 安装:Eclipse-update或手工下载解压至Eclipse 使用:launch in coverage mode 结果:对project、package、class进行覆盖率统计 查看:源代码窗口绿(覆盖),黄(部分覆盖),红(未覆盖) 原理:生成只能由EclEMMA launch的临时class文件进行分析,一般放在project外的临时目录下;也可以选择直接对project的class文件进行修改 下载地址: /eclemma/release/eclemma-2.2.1.zip JWebUnit jWebUnit 是以 HttpUnit(一个进行 Web 应用程序自动测试的 Java 库)和 JUnit 单元测试框架为基础。 jWebUnit 提供了导航 Web 应用程序的高级 API,并组合了一组断言,用它们来验证链接导航、表单输入项和提交、表格内容以及其他典型商务 Web 应用程序特性的正确性。 jWebUnit 以 JAR 文件形式提供的,可以很容易地将它插入大多数 IDE 中,jWebUnit 也包含其他必要的库。 下载地址: /projects/jwebunit/
显示全部