JUnit实战

JUnit实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Petar Tahchiev Felipe Leme) , [美] ,
2012-04
版次: 1
ISBN: 9787115274755
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 442页
字数: 640千字
正文语种: 简体中文
原版书名: JUnit in Action
113人买过
  • 《JUnit实战(第2版)》从认识JUnit、不同的测试策略、JUnit与构建过程、JUnit扩展4个方面,由浅入深、由易到难地对JUnit展开了系统的讲解,包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mockobjects进行测试、容器内测试、从Ant中运行JUnit测试、从Maven2中运行JUnit测试、持续集成工具、表示层的测试、Ajax测试、使用Cactus进行服务器端的Java测试、测试JSF应用程序、测试OSGi组件、测试数据库访问、测试基于JPA的应用程序、JUnit的其他用法等内容。
    《JUnit实战(第2版)》不仅仅介绍了使用JUnit框架测试项目必须掌握的核心概念,还指导读者如何使用JUnit框架编写自己的测试用例,并针对在编写代码的过程中如何使得代码可测试给出建议。本书还介绍了基础的软件开发原则,如测试驱动开发(TDD)等,以便指导用户如何使用不同的工具来测试典型JavaEE应用程序的每一层。此外,本书也提供了几个附录,以帮助读者快速转换到最新版本的JUnit,并且能够轻松地集成自己喜欢的IDE。
    本书适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员。对于单元测试学习者和编程爱好者来说,本书则具有极高的学习参考价值。 PetarTahchiey,曾是HP的软件工程师,也是JakartaCactus项目的核心开发人员。
    FelipeLeme,是JCP成员,也是DbUnit和Cactus的贡献者。
    GaryGregory,是一位具有20多年经验的Java开发者,他目前在为遗留集成开发应用服务器。
    VincentMassol,是《JUnit实战(第1版)》的作者。 第1部分认识JUnit
    第1章JUnit起步
    1.1证实它能运行
    1.2从零开始
    1.3理解单元测试框架
    1.4JUnit的设计目标
    1.5安装JUnit
    1.6使用JUnit测试
    1.7小结
    第2章探索JUnit的核心
    2.1探索JUnit核心
    2.2运行参数化测试
    2.3JUnit的测试运行器
    2.3.1测试运行器简介
    2.3.2JUnitCorefa?ade
    2.3.3自定义测试运行器
    2.4用Suite来组合测试
    2.4.1组合一组测试类
    2.4.2组合一组测试集
    2.4.3Suite、IDE、Ant与Maven
    2.5小结
    第3章掌握JUnit
    3.1引入controller组件
    3.1.1设计接口
    3.1.2实现基类
    3.2让我们来测试它
    3.2.1测试DefaultController
    3.2.2添加一个处理器
    3.2.3请求处理
    3.2.4改进testProcessRequest
    3.3测试异常处理
    3.3.1模拟异常条件
    3.3.2测试异常
    3.4超时测试
    3.5引入Hamcrest匹配器
    3.6创建测试项目
    3.7小结
    第4章软件测试原则
    4.1单元测试的必要性
    4.1.1带来更高的测试覆盖率
    4.1.2提高团队效率
    4.1.3监测衰退和减少调试
    4.1.4自信地重构
    4.1.5改进实现
    4.1.6将预期的行为文档化
    4.1.7启用代码覆盖率以及其他指标
    4.2测试类型
    4.2.1软件测试的4种类型
    4.2.2单元测试的3种类型
    4.3黑盒测试与白盒测试
    4.4小结

    第2部分不同的测试策略
    第5章测试覆盖率与开发
    5.1测量测试覆盖率
    5.1.1测试覆盖率简介
    5.1.2Cobertura简介
    5.1.3生成测试覆盖率报告
    5.1.4结合黑盒与白盒测试
    5.2编写可测试的代码
    5.2.1公共API是协议
    5.2.2减少依赖关系
    5.2.3创建简单的构造函数
    5.2.4遵循最少知识原则
    5.2.5避免隐藏的依赖关系与全局状态
    5.2.6单态模式的优点和缺点
    5.2.7优先使用通用方法
    5.2.8组合优先于继承
    5.2.9多态优先于条件语句
    5.3测试驱动开发
    5.3.1调整开发周期
    5.3.2TDD的两个步骤
    5.4在开发周期中的测试
    5.5小结
    第6章使用stub进行粗粒度测试
    6.1stub简介
    6.2使用stub测试一个HTTP连接
    6.2.1选择使用stub的方案
    6.2.2使用Jetty作为嵌入式服务器
    6.3使用stub替换Web服务器资源
    6.3.1建立第一个stub测试
    6.3.2针对故障情况进行测试
    6.3.3回顾第一个stub测试
    6.4替换连接
    6.4.1创建自定义的URL协议处理器
    6.4.2创建一个JDK的HttpURLConnectionstub
    6.4.3运行测试
    6.5小结
    第7章使用mockobjects进行测试
    7.1mockobjects简介
    7.2使用mockobjects进行单元测试
    7.3使用mockobjects来重构
    7.3.1重构示例
    7.4替换一个HTTP连接
    7.4.1定义mockobjects
    7.4.2测试一个简单的方法
    7.4.3第一次尝试:简单的方法重构技巧
    7.4.4第二个尝试:使用类工厂来重构
    7.5把mocks用作特洛伊木马
    7.6介绍mock框架
    7.6.1使用EasyMock
    7.6.2使用JMock
    7.7小结
    第8章容器内测试
    8.1标准单元测试的局限性
    8.2mockobjects解决方案
    8.3容器内测试
    8.3.1实现策略
    8.3.2容器内测试框架
    8.4比较stub、mockobjects和容器内测试
    8.4.1stub的优点与缺点
    8.4.2mockobjects的优点和缺点
    8.4.3容器内测试的优点与缺点
    8.4.4容器内测试与容器外测试
    8.5小结

    第3部分JUnit与构建过程
    第9章从Ant中运行JUnit测试
    9.1生命中的一天
    9.2从Ant中运行测试
    9.3认识并安装Ant
    9.4Ant的目标、项目、属性以及任务
    9.4.1javac任务
    9.4.2JUnit任务
    9.5让Ant来执行任务
    9.6使用Ivy进行依赖管理
    9.7创建HTML报告
    9.8批处理测试
    9.9小结
    第10章从Maven2中运行JUnit测试
    10.1Maven的功能
    10.1.1约定优于配置
    10.1.2强大的依赖管理
    10.1.3Maven的构建生命周期
    10.1.4基于插件的架构
    10.1.5Maven项目对象模型
    10.2建立一个Maven项目
    10.3Maven插件的引入
    10.3.1Maven的Compiler插件
    10.3.2Maven的Surefire插件
    10.3.3使用Maven生成HTML格式的JUnit报告
    10.4Maven的不足
    10.5小结
    第11章持续集成工具
    11.1尝试持续集成
    11.1.1持续集成测试
    11.2拯救用户的CruiseControl
    11.2.1开始使用CruiseControl
    11.2.2创建一个示例项目
    11.2.3解析CruiseControl配置文件
    11.3另一个持续集成工具--Hudson
    11.3.1Hudson简介
    11.3.2安装
    11.3.3配置Hudson
    11.3.4配置Hudson中的项目
    11.4持续集成的优势
    11.5小结
    第4部分JUnit扩展
    第12章表示层的测试
    12.1选择测试框架
    12.2HtmlUnit简介
    12.2.1一个实例
    12.3编写HtmlUnit测试
    12.3.1HTML断言
    12.3.2对特定的Web浏览器进行测试
    12.3.3测试多个Web浏览器
    12.3.4创建独立的测试
    12.3.5导航对象模型
    12.3.6通过特定的元素类型访问元素
    12.3.7通过名字与索引访问元素
    12.3.8通过引用访问元素
    12.3.9使用XPath
    12.3.10测试失败和异常
    12.3.11应用程序与网络导航
    12.3.12使用HtmlUnit测试表单
    12.3.13测试框架(frame)
    12.3.14测试JavaScript
    12.3.15测试CSS
    12.3.16SSL错误
    12.4集成HtmlUnit和Cactus
    12.4.1在Cactus中编写测试
    12.5Selenium简介
    12.6生成Selenium测试
    12.6.1一个实例
    12.7运行Selenium测试
    12.7.1管理Selenium服务器
    12.7.2使用JUnit4运行Selenium测试
    12.8编写Selenium测试
    12.8.1针对特定的Web浏览器进行测试
    12.8.2测试多个浏览器
    12.8.3应用程序和网络导航
    12.8.4通过引用访问元素
    12.8.5通过异常使测试失败
    12.8.6使用Selenium测试表单
    12.8.7测试JavaScript告警
    12.8.8捕获一个JUnit3测试失败的截屏
    12.8.9捕获一个JUnit4测试失败的截屏
    12.9HtmlUnit与Selenium
    12.10小结
    第13章Ajax测试
    13.1Ajax应用程序难以测试的原因
    13.1.1传统的Web交互
    13.1.2Ajax交互
    13.1.3一个崭新的世界
    13.1.4测试的挑战
    13.2Ajax的测试模式
    13.2.1功能测试
    13.2.2客户端脚本单元测试
    13.2.3服务测试
    13.3功能测试
    13.3.1使用Seleniun进行功能测试
    13.3.2使用HtmlUnit进行功能测试
    13.4JavaScript测试
    13.4.1使用RhinoUnit测试JavaScript
    13.4.2使用JsUnit测试JavaScript
    13.4.3编写JsUnit测试用例
    13.4.4编写JsUnit测试集
    13.4.5手动运行JsUnit测试用例
    13.4.6使用Ant自动运行JsUnit测试用例
    13.5RhinoUnit与JsUnit
    13.6使用JSLint检验最佳实践
    13.7使用HttpClient测试服务
    13.7.1调用XML服务
    13.7.2验证XML响应
    13.7.3验证JSON响应
    13.8测试GoogleWeb工具箱应用程序
    13.8.1为GWT应用程序选择测试框架
    13.8.2手动创建GWTTestCase
    13.8.3使用junitCreator创建GWTTestCase
    13.8.4运行测试用例
    13.8.5安装和拆卸测试
    13.8.6创建测试集
    13.8.7运行测试集
    13.9小结
    第14章使用Cactus进行服务器端的Java测试
    14.1什么是Cactus?
    14.2使用Cactus进行测试
    14.2.1你可以使用Cactus测试的Java组件
    14.2.2一般原则
    14.2.3Cactus如何工作
    14.3测试servlet和filters
    14.3.1介绍管理应用程序
    14.3.2使用Cactus编写servlet测试
    14.4测试JSP
    14.4.1回顾管理应用程序
    14.4.2什么是JSP单元测试?
    14.4.3单独使用Cactus对JSP进行单元测试
    14.4.4利用SQL结果数据执行JSP
    14.5测试EJB
    14.6什么是Cargo?
    14.7使用Ant执行Cactus测试
    14.7.1用来准备文件的Cactus
    14.8使用Maven2x执行Cactus测试
    14.8.1Maven2cactifywarMOJO
    14.8.2Maven2cactifyearMOJO
    14.9从浏览器执行Cactus测试
    14.10小结
    第15章测试JSF应用程序
    15.1引入JSF
    15.2介绍示例应用程序
    15.3测试JSF应用程序时的典型问题
    15.4测试JSF应用程序的策略
    15.4.1黑盒方法
    15.4.2Mockobject援救
    15.5使用JSUnit测试示例应用程序
    15.5.1从浏览器执行一个JSFUnit测试
    15.5.2使用JSFUnit测试Ajax
    15.6使用HtmlUnit与JSFUnit
    15.7JSF应用程序的性能测试
    15.8小结
    第16章测试OSGi组件
    16.1OSGi简介
    16.2第一个OSGi服务
    16.2.1示例应用程序
    16.3测试OSGi服务
    16.3.1Mockobjects
    16.4引入JUnit4OSGi
    16.5小结
    第17章测试数据库访问
    17.1数据库单元测试的阻抗不匹配
    17.1.1单元测试必须执行隔离的代码
    17.1.2单元测试必须易于编写和运行
    17.1.3单元测试必须运行快速
    17.2DbUnit介绍
    17.2.1示例应用程序
    17.2.2设置DbUnit并运行示例应用程序
    17.3使用数据集来填充数据库
    17.3.1剖析DatabaseOperation
    17.4用数据集断言数据库状态
    17.4.1过滤数据集
    17.4.2忽略数据列
    17.5使用ReplacementDataSet转换数据
    17.5.1使用ReplacementDataSet处理不同的ID问题
    17.5.2处理NULL值
    17.6从已有的数据库数据中创建数据集
    17.7高级技术
    17.7.1DbUnit与模板设计模式
    17.7.2通过自定义注释提高重用
    17.7.3在数据集中使用表达式语言
    17.8数据库访问测试的最佳做法
    17.8.1每个开发者使用一个数据库
    17.8.2确保目标数据库被测试
    17.8.3为加载和存储数据创建互补测试
    17.8.4编写加载测试用例时,应涵盖所有基本场景
    17.8.5计划数据集的使用
    17.8.6测试清理
    17.9小结
    第18章测试基于JPA的应用程序
    18.1测试多层应用程序
    18.1.1示例应用程序
    18.1.2多层、多种测试策略
    18.2JPA测试的方方面面
    18.3准备基础设施
    18.4测试JPA实体映射
    18.4.1使用JPAID生成器集成测试用例
    18.5测试基于JPA的DAO
    18.6测试外键名字
    18.7小结
    第19章JUnit的其他用法
    19.1介绍
    19.1.1工具概述
    19.1.2运行示例
    19.2透明地使用mock
    19.2.1Unitils的EasyMock支持
    19.2.2FEST-Mocks
    19.2.3Mycila
    19.3DbUnit集成
    19.4使断言更简单
    19.4.1JUnit-addons断言包
    19.4.2Unitlis的ReflectionAssert
    19.4.3FEST流畅断言模块
    19.4.4Mylica继承断言
    19.5使用反射绕过封装
    19.5.1内部替代物
    19.5.2JUnit-addons
    19.5.3FEST-Reflect
    19.6小结

    附录AJUnit3和JUnit4之间的不同
    A.1全球的需求变化
    A.1.1JDK的要求
    A.1.2向后/向前兼容
    A.2API中的变化
    A.2.1包结构
    A.2.2构造函数
    A.2.3扩展TestCase
    A.2.4测试方法名称
    A.3注释与新增的静态导入
    A.3.1@Before与@After注释
    A.3.2@BeforeClass和@AfterClass注释
    A.3.3忽略测试的差异
    A.3.4静态导入
    A.3.5异常测试
    A.3.6超时测试
    A.4新的JUnitrunners
    A.4.1测试运行器(Testrunner)
    A.4.2测试集
    A.4.3参数化测试
    A.5新的断言和假设
    A.5.1Hamcrest断言
    A.5.2假设
    A.5.3新断言
    A.5.4断言错误
    附录B使用自定义的运行器和匹配器扩展JUnitAPI
    B.1介绍拦截器模式
    B.2实现自定义运行器
    B.3实现自定义匹配器
    附录C本书源代码
    C.1获取源代码
    C.2源代码概览
    C.3外部库
    C.4JAR版本
    C.5目录结构约定
    附录DJUnitIDE集成
    D.1JUnit与Eclipse的集成
    D.1.1安装Eclipse
    D.1.2从源代码创建Eclipse项目
    D.1.3从Eclipse运行JUnit测试
    D.1.4从Eclipse运行Ant脚本
    D.2引入JUnitMAXEclipse插件
    D.2.1集成在你的开发周期中
    D.2.2执行顺序
    D.2.3恢复到上一个稳定版本
    D.3JUnit与NetBeans集成
    D.3.1安装NetBeans
    D.3.2从源代码中创建NetBeans项目
    D.3.3从NetBeans运行JUnit测试
    D.3.4从NetBeans运行Ant脚本
    附录E安装软件
    E.1安装HtmlUnit
    E.1.1标准配置
    E.1.2Eclipse的配置
    E.2使用HtmlUnit配置Cactus
    E.3安装Selenium
    E.4安装RhinoUnit
    E.5安装JsUnit
  • 内容简介:
    《JUnit实战(第2版)》从认识JUnit、不同的测试策略、JUnit与构建过程、JUnit扩展4个方面,由浅入深、由易到难地对JUnit展开了系统的讲解,包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mockobjects进行测试、容器内测试、从Ant中运行JUnit测试、从Maven2中运行JUnit测试、持续集成工具、表示层的测试、Ajax测试、使用Cactus进行服务器端的Java测试、测试JSF应用程序、测试OSGi组件、测试数据库访问、测试基于JPA的应用程序、JUnit的其他用法等内容。
    《JUnit实战(第2版)》不仅仅介绍了使用JUnit框架测试项目必须掌握的核心概念,还指导读者如何使用JUnit框架编写自己的测试用例,并针对在编写代码的过程中如何使得代码可测试给出建议。本书还介绍了基础的软件开发原则,如测试驱动开发(TDD)等,以便指导用户如何使用不同的工具来测试典型JavaEE应用程序的每一层。此外,本书也提供了几个附录,以帮助读者快速转换到最新版本的JUnit,并且能够轻松地集成自己喜欢的IDE。
    本书适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员。对于单元测试学习者和编程爱好者来说,本书则具有极高的学习参考价值。
  • 作者简介:
    PetarTahchiey,曾是HP的软件工程师,也是JakartaCactus项目的核心开发人员。
    FelipeLeme,是JCP成员,也是DbUnit和Cactus的贡献者。
    GaryGregory,是一位具有20多年经验的Java开发者,他目前在为遗留集成开发应用服务器。
    VincentMassol,是《JUnit实战(第1版)》的作者。
  • 目录:
    第1部分认识JUnit
    第1章JUnit起步
    1.1证实它能运行
    1.2从零开始
    1.3理解单元测试框架
    1.4JUnit的设计目标
    1.5安装JUnit
    1.6使用JUnit测试
    1.7小结
    第2章探索JUnit的核心
    2.1探索JUnit核心
    2.2运行参数化测试
    2.3JUnit的测试运行器
    2.3.1测试运行器简介
    2.3.2JUnitCorefa?ade
    2.3.3自定义测试运行器
    2.4用Suite来组合测试
    2.4.1组合一组测试类
    2.4.2组合一组测试集
    2.4.3Suite、IDE、Ant与Maven
    2.5小结
    第3章掌握JUnit
    3.1引入controller组件
    3.1.1设计接口
    3.1.2实现基类
    3.2让我们来测试它
    3.2.1测试DefaultController
    3.2.2添加一个处理器
    3.2.3请求处理
    3.2.4改进testProcessRequest
    3.3测试异常处理
    3.3.1模拟异常条件
    3.3.2测试异常
    3.4超时测试
    3.5引入Hamcrest匹配器
    3.6创建测试项目
    3.7小结
    第4章软件测试原则
    4.1单元测试的必要性
    4.1.1带来更高的测试覆盖率
    4.1.2提高团队效率
    4.1.3监测衰退和减少调试
    4.1.4自信地重构
    4.1.5改进实现
    4.1.6将预期的行为文档化
    4.1.7启用代码覆盖率以及其他指标
    4.2测试类型
    4.2.1软件测试的4种类型
    4.2.2单元测试的3种类型
    4.3黑盒测试与白盒测试
    4.4小结

    第2部分不同的测试策略
    第5章测试覆盖率与开发
    5.1测量测试覆盖率
    5.1.1测试覆盖率简介
    5.1.2Cobertura简介
    5.1.3生成测试覆盖率报告
    5.1.4结合黑盒与白盒测试
    5.2编写可测试的代码
    5.2.1公共API是协议
    5.2.2减少依赖关系
    5.2.3创建简单的构造函数
    5.2.4遵循最少知识原则
    5.2.5避免隐藏的依赖关系与全局状态
    5.2.6单态模式的优点和缺点
    5.2.7优先使用通用方法
    5.2.8组合优先于继承
    5.2.9多态优先于条件语句
    5.3测试驱动开发
    5.3.1调整开发周期
    5.3.2TDD的两个步骤
    5.4在开发周期中的测试
    5.5小结
    第6章使用stub进行粗粒度测试
    6.1stub简介
    6.2使用stub测试一个HTTP连接
    6.2.1选择使用stub的方案
    6.2.2使用Jetty作为嵌入式服务器
    6.3使用stub替换Web服务器资源
    6.3.1建立第一个stub测试
    6.3.2针对故障情况进行测试
    6.3.3回顾第一个stub测试
    6.4替换连接
    6.4.1创建自定义的URL协议处理器
    6.4.2创建一个JDK的HttpURLConnectionstub
    6.4.3运行测试
    6.5小结
    第7章使用mockobjects进行测试
    7.1mockobjects简介
    7.2使用mockobjects进行单元测试
    7.3使用mockobjects来重构
    7.3.1重构示例
    7.4替换一个HTTP连接
    7.4.1定义mockobjects
    7.4.2测试一个简单的方法
    7.4.3第一次尝试:简单的方法重构技巧
    7.4.4第二个尝试:使用类工厂来重构
    7.5把mocks用作特洛伊木马
    7.6介绍mock框架
    7.6.1使用EasyMock
    7.6.2使用JMock
    7.7小结
    第8章容器内测试
    8.1标准单元测试的局限性
    8.2mockobjects解决方案
    8.3容器内测试
    8.3.1实现策略
    8.3.2容器内测试框架
    8.4比较stub、mockobjects和容器内测试
    8.4.1stub的优点与缺点
    8.4.2mockobjects的优点和缺点
    8.4.3容器内测试的优点与缺点
    8.4.4容器内测试与容器外测试
    8.5小结

    第3部分JUnit与构建过程
    第9章从Ant中运行JUnit测试
    9.1生命中的一天
    9.2从Ant中运行测试
    9.3认识并安装Ant
    9.4Ant的目标、项目、属性以及任务
    9.4.1javac任务
    9.4.2JUnit任务
    9.5让Ant来执行任务
    9.6使用Ivy进行依赖管理
    9.7创建HTML报告
    9.8批处理测试
    9.9小结
    第10章从Maven2中运行JUnit测试
    10.1Maven的功能
    10.1.1约定优于配置
    10.1.2强大的依赖管理
    10.1.3Maven的构建生命周期
    10.1.4基于插件的架构
    10.1.5Maven项目对象模型
    10.2建立一个Maven项目
    10.3Maven插件的引入
    10.3.1Maven的Compiler插件
    10.3.2Maven的Surefire插件
    10.3.3使用Maven生成HTML格式的JUnit报告
    10.4Maven的不足
    10.5小结
    第11章持续集成工具
    11.1尝试持续集成
    11.1.1持续集成测试
    11.2拯救用户的CruiseControl
    11.2.1开始使用CruiseControl
    11.2.2创建一个示例项目
    11.2.3解析CruiseControl配置文件
    11.3另一个持续集成工具--Hudson
    11.3.1Hudson简介
    11.3.2安装
    11.3.3配置Hudson
    11.3.4配置Hudson中的项目
    11.4持续集成的优势
    11.5小结
    第4部分JUnit扩展
    第12章表示层的测试
    12.1选择测试框架
    12.2HtmlUnit简介
    12.2.1一个实例
    12.3编写HtmlUnit测试
    12.3.1HTML断言
    12.3.2对特定的Web浏览器进行测试
    12.3.3测试多个Web浏览器
    12.3.4创建独立的测试
    12.3.5导航对象模型
    12.3.6通过特定的元素类型访问元素
    12.3.7通过名字与索引访问元素
    12.3.8通过引用访问元素
    12.3.9使用XPath
    12.3.10测试失败和异常
    12.3.11应用程序与网络导航
    12.3.12使用HtmlUnit测试表单
    12.3.13测试框架(frame)
    12.3.14测试JavaScript
    12.3.15测试CSS
    12.3.16SSL错误
    12.4集成HtmlUnit和Cactus
    12.4.1在Cactus中编写测试
    12.5Selenium简介
    12.6生成Selenium测试
    12.6.1一个实例
    12.7运行Selenium测试
    12.7.1管理Selenium服务器
    12.7.2使用JUnit4运行Selenium测试
    12.8编写Selenium测试
    12.8.1针对特定的Web浏览器进行测试
    12.8.2测试多个浏览器
    12.8.3应用程序和网络导航
    12.8.4通过引用访问元素
    12.8.5通过异常使测试失败
    12.8.6使用Selenium测试表单
    12.8.7测试JavaScript告警
    12.8.8捕获一个JUnit3测试失败的截屏
    12.8.9捕获一个JUnit4测试失败的截屏
    12.9HtmlUnit与Selenium
    12.10小结
    第13章Ajax测试
    13.1Ajax应用程序难以测试的原因
    13.1.1传统的Web交互
    13.1.2Ajax交互
    13.1.3一个崭新的世界
    13.1.4测试的挑战
    13.2Ajax的测试模式
    13.2.1功能测试
    13.2.2客户端脚本单元测试
    13.2.3服务测试
    13.3功能测试
    13.3.1使用Seleniun进行功能测试
    13.3.2使用HtmlUnit进行功能测试
    13.4JavaScript测试
    13.4.1使用RhinoUnit测试JavaScript
    13.4.2使用JsUnit测试JavaScript
    13.4.3编写JsUnit测试用例
    13.4.4编写JsUnit测试集
    13.4.5手动运行JsUnit测试用例
    13.4.6使用Ant自动运行JsUnit测试用例
    13.5RhinoUnit与JsUnit
    13.6使用JSLint检验最佳实践
    13.7使用HttpClient测试服务
    13.7.1调用XML服务
    13.7.2验证XML响应
    13.7.3验证JSON响应
    13.8测试GoogleWeb工具箱应用程序
    13.8.1为GWT应用程序选择测试框架
    13.8.2手动创建GWTTestCase
    13.8.3使用junitCreator创建GWTTestCase
    13.8.4运行测试用例
    13.8.5安装和拆卸测试
    13.8.6创建测试集
    13.8.7运行测试集
    13.9小结
    第14章使用Cactus进行服务器端的Java测试
    14.1什么是Cactus?
    14.2使用Cactus进行测试
    14.2.1你可以使用Cactus测试的Java组件
    14.2.2一般原则
    14.2.3Cactus如何工作
    14.3测试servlet和filters
    14.3.1介绍管理应用程序
    14.3.2使用Cactus编写servlet测试
    14.4测试JSP
    14.4.1回顾管理应用程序
    14.4.2什么是JSP单元测试?
    14.4.3单独使用Cactus对JSP进行单元测试
    14.4.4利用SQL结果数据执行JSP
    14.5测试EJB
    14.6什么是Cargo?
    14.7使用Ant执行Cactus测试
    14.7.1用来准备文件的Cactus
    14.8使用Maven2x执行Cactus测试
    14.8.1Maven2cactifywarMOJO
    14.8.2Maven2cactifyearMOJO
    14.9从浏览器执行Cactus测试
    14.10小结
    第15章测试JSF应用程序
    15.1引入JSF
    15.2介绍示例应用程序
    15.3测试JSF应用程序时的典型问题
    15.4测试JSF应用程序的策略
    15.4.1黑盒方法
    15.4.2Mockobject援救
    15.5使用JSUnit测试示例应用程序
    15.5.1从浏览器执行一个JSFUnit测试
    15.5.2使用JSFUnit测试Ajax
    15.6使用HtmlUnit与JSFUnit
    15.7JSF应用程序的性能测试
    15.8小结
    第16章测试OSGi组件
    16.1OSGi简介
    16.2第一个OSGi服务
    16.2.1示例应用程序
    16.3测试OSGi服务
    16.3.1Mockobjects
    16.4引入JUnit4OSGi
    16.5小结
    第17章测试数据库访问
    17.1数据库单元测试的阻抗不匹配
    17.1.1单元测试必须执行隔离的代码
    17.1.2单元测试必须易于编写和运行
    17.1.3单元测试必须运行快速
    17.2DbUnit介绍
    17.2.1示例应用程序
    17.2.2设置DbUnit并运行示例应用程序
    17.3使用数据集来填充数据库
    17.3.1剖析DatabaseOperation
    17.4用数据集断言数据库状态
    17.4.1过滤数据集
    17.4.2忽略数据列
    17.5使用ReplacementDataSet转换数据
    17.5.1使用ReplacementDataSet处理不同的ID问题
    17.5.2处理NULL值
    17.6从已有的数据库数据中创建数据集
    17.7高级技术
    17.7.1DbUnit与模板设计模式
    17.7.2通过自定义注释提高重用
    17.7.3在数据集中使用表达式语言
    17.8数据库访问测试的最佳做法
    17.8.1每个开发者使用一个数据库
    17.8.2确保目标数据库被测试
    17.8.3为加载和存储数据创建互补测试
    17.8.4编写加载测试用例时,应涵盖所有基本场景
    17.8.5计划数据集的使用
    17.8.6测试清理
    17.9小结
    第18章测试基于JPA的应用程序
    18.1测试多层应用程序
    18.1.1示例应用程序
    18.1.2多层、多种测试策略
    18.2JPA测试的方方面面
    18.3准备基础设施
    18.4测试JPA实体映射
    18.4.1使用JPAID生成器集成测试用例
    18.5测试基于JPA的DAO
    18.6测试外键名字
    18.7小结
    第19章JUnit的其他用法
    19.1介绍
    19.1.1工具概述
    19.1.2运行示例
    19.2透明地使用mock
    19.2.1Unitils的EasyMock支持
    19.2.2FEST-Mocks
    19.2.3Mycila
    19.3DbUnit集成
    19.4使断言更简单
    19.4.1JUnit-addons断言包
    19.4.2Unitlis的ReflectionAssert
    19.4.3FEST流畅断言模块
    19.4.4Mylica继承断言
    19.5使用反射绕过封装
    19.5.1内部替代物
    19.5.2JUnit-addons
    19.5.3FEST-Reflect
    19.6小结

    附录AJUnit3和JUnit4之间的不同
    A.1全球的需求变化
    A.1.1JDK的要求
    A.1.2向后/向前兼容
    A.2API中的变化
    A.2.1包结构
    A.2.2构造函数
    A.2.3扩展TestCase
    A.2.4测试方法名称
    A.3注释与新增的静态导入
    A.3.1@Before与@After注释
    A.3.2@BeforeClass和@AfterClass注释
    A.3.3忽略测试的差异
    A.3.4静态导入
    A.3.5异常测试
    A.3.6超时测试
    A.4新的JUnitrunners
    A.4.1测试运行器(Testrunner)
    A.4.2测试集
    A.4.3参数化测试
    A.5新的断言和假设
    A.5.1Hamcrest断言
    A.5.2假设
    A.5.3新断言
    A.5.4断言错误
    附录B使用自定义的运行器和匹配器扩展JUnitAPI
    B.1介绍拦截器模式
    B.2实现自定义运行器
    B.3实现自定义匹配器
    附录C本书源代码
    C.1获取源代码
    C.2源代码概览
    C.3外部库
    C.4JAR版本
    C.5目录结构约定
    附录DJUnitIDE集成
    D.1JUnit与Eclipse的集成
    D.1.1安装Eclipse
    D.1.2从源代码创建Eclipse项目
    D.1.3从Eclipse运行JUnit测试
    D.1.4从Eclipse运行Ant脚本
    D.2引入JUnitMAXEclipse插件
    D.2.1集成在你的开发周期中
    D.2.2执行顺序
    D.2.3恢复到上一个稳定版本
    D.3JUnit与NetBeans集成
    D.3.1安装NetBeans
    D.3.2从源代码中创建NetBeans项目
    D.3.3从NetBeans运行JUnit测试
    D.3.4从NetBeans运行Ant脚本
    附录E安装软件
    E.1安装HtmlUnit
    E.1.1标准配置
    E.1.2Eclipse的配置
    E.2使用HtmlUnit配置Cactus
    E.3安装Selenium
    E.4安装RhinoUnit
    E.5安装JsUnit
查看详情
相关图书 / 更多
JUnit实战
JUJU的水彩红楼梦
[清]曹雪芹高鹗 著
JUnit实战
JUnit in Action, Second Edition
Petar Tahchiev;Felipe Leme;Vincent Massol;Gary Gregory
JUnit实战
JUST AFTER SUNSET 日落之后
Stephen King 著
JUnit实战
JUST FRIENDS
Robyn Sisman 著
JUnit实战
JUnit实战(第3版)
[罗马尼亚]克特林·图多塞(Catalin Tudose)
JUnit实战
JURI “ao akua”
上野樹里
JUnit实战
JULIE PARSONS:EAGER TO PLEASE
Julie Parsons 著
JUnit实战
JUST DISGUSTING! 讨厌
Andy Griffiths 著
JUnit实战
JUST SO STORIES
Rudyard Kipling
JUnit实战
JULY原创水彩上色线稿集
知更卜(微博JULYJAZIA) 著
JUnit实战
JUMPatHome,Grade6:WorksheetsfortheJUMPMathProgram
John Mighton 著
JUnit实战
JUN―石ノ森章太郎ファンタジー画集
石ノ森 章太郎
您可能感兴趣 / 更多
JUnit实战
一个画家的旅程(一本讲述被誉为“美国艺术创始人”的传记绘本)
[美]哈德逊·塔尔伯特
JUnit实战
亚拉山大的读心术(数学大师的逻辑课) 伦理学、逻辑学 [美]雷蒙德·m.斯穆里安(raymondm.smullyan)
[美]雷蒙德·m.斯穆里安(raymondm.smullyan)
JUnit实战
蒙特卡洛的密码锁(数学大师的逻辑课) 文教科普读物 [美]雷蒙德·m.斯穆里安(raymondm.smullyan)
[美]雷蒙德·m.斯穆里安(raymondm.smullyan)
JUnit实战
纳博科夫精选集第五辑
[美]弗拉基米尔·纳博科夫著
JUnit实战
九桃盘(美国二十世纪重要女诗人玛丽安·摩尔诗歌精选集,由知名女诗人和女性诗学研究者倪志娟倾情翻译)
[美]玛丽安•摩尔
JUnit实战
全新正版图书 制造德·戴维尼浙江教育出版社9787572276880
[美]理查德·戴维尼
JUnit实战
福尔摩斯的棋盘:关于国际象棋的推理题(数学大师的逻辑课)
[美]雷蒙德·m.斯穆里安
JUnit实战
金钱游戏(划时代增订版):深层透析金融游戏表象之下的规则与黑箱 长达60年盘踞金融畅销榜的现象级作品
[美]亚当·史密斯(Adam Smith) 著;刘寅龙 译
JUnit实战
波西·杰克逊阿波罗的试炼系列第3册:烈焰迷宫
[美]雷克·莱尔顿 著;火皮豆 译
JUnit实战
矿王谷的黎明:塞拉俱乐部诉莫顿案与美国环境法的转变(精装典藏版)
[美]丹尼尔·P.塞尔米,(Daniel,P.Selmi)
JUnit实战
诺奖作家给孩子的阅读课·生命教育(3-9年级,莫言余华的文学启蒙,垫高阅读起点,提升作文能力)
[美]海明威等
JUnit实战
故事思维 商业管理 思维表达职场沟通人际交往
[美]安妮特·西蒙斯 后浪