Java测试新技术TestNG和高级概念
作者:伯斯特(Beist,C.),苏雷曼(Suleiman,H.) 著,王海鹏 译
出版:机械工业出版社 2009.1
丛书:华章程序员书库
页数:324
定价:49.00 元
ISBN-13:9787111245506
ISBN-10:7111245504
去豆瓣看看 译者序
序
前言
致谢
第1章 起步
1.1 超越JUnit
1.1.1 有状态的类
1.1.2 参数
1.1.3 基类
1.1.4 异常并非偶然
1.1.5 执行测试
1.1.6 真实世界中的测试
1.1.7 配置方法
1.1.8 依赖关系
1.1.9 领悟
1.2 JUnit
1.3 针对可测试性而设计
1.3.1 面向对象编程和封装
1.3.2 设计模式革命
1.3.3 确定问题
1.3.4 推荐阅读
1.4 TestNG
1.4.1 annotation
1.4.2 测试、套件和配置annotation
1.4.3 分组
1.4.4 testng.xml
1.5 本章小结
第2章 测试设计模式
2.1 针对失败而测试
2.1.1 报告错误
2.1.2 运行时刻异常和被检查的异常
2.1.3 测试代码是否漂亮地处理了失败
2.1.4 何时不要使用expected-Exceptions
2.1.5 testng-failecL.xml
2.2 工厂
2.2.1 @Factory
2.2.2 org.testng.ITest
2.3 数据驱动测试
2.3.1 参数和测试方法
2.3.2 利用testng.xml传递参数
2.3.3 利用@DataProvider传递参数
2.3.4 针对数据提供者的参数
2.3.5 Method参数
2.3.6 ITestContext参数
2.3.7 延迟数据提供者
2.3.8 两种方法的优点和不足
2.3.9 提供数据
2.3.10 数据提供者还是工厂
2.3.11 综合运用
2.4 异步测试
2.5 测试多线程代码
2.5.1 并发测试
2.5.2 threadPoolSize、invocationCount和timeOut
2.5.3 并发执行
2.5.4 打开并行位
2.6 性能测试
2.6.1 算法复杂度
2.6.2 测试复杂度
2.7 模拟和桩
2.7.1 模拟与桩的对比
2.7.2 为可模拟性而设计
2.7.3 模拟库
2.7.4 选择正确的策略
2.7.5 模拟易犯的错误
2.8 依赖的测试
2.8.1 依赖的代码
2.8.2 利用TestNG进行依赖的测试
2.8.3 决定依赖于组还是方法
2.8.4 依赖的测试和线程
2.8.5 配置方法的失败
2.9 继承和annotation范围
2.9.1 问题
2.9.2 继承易犯的错误
2.10 测试分组
2.10.1 语法
2.10.2 分组与运行时刻
2.10.3 执行分组
2.10.4 有效使用分组
2.11 代码覆盖率
2.11.1 覆盖率示例
2.11.2 覆盖率度量指标
2.11.3 覆盖率工具
2.11.4 实现
2.11.5 小心
2.11.6 成功使用覆盖率的建议
2.12 本章小结
第3章 企业级测试
3.1 典型企业级场景
3.1.1 参与者
3.1.2 测试方法学
3.1.3 当前方法的问题
3.2 一个具体例子
3.2.1 测试内容
3.2.2 非测试内容
3.3 测试实现
3.3.1 测试成功场景
3.3.2 构建测试数据
3.3.3 测试准备问题
3.3.4 错误处理
3.3.5 逐渐出现的单元测试
3.3.6 处理容器内的组件
3.3.7 综述
3.4 探讨竞争消费者模式
3.4.1 模式
3.4.2 测试
3.5 重构的作用
3.5.1 一个具体的例子
3.5.2 容器内的方式
3.6 本章小结
第4章 Java EE测试
4.1 容器内测试与容器外测试的对比
4.2 容器内测试
4.2.1 创建测试环境
4.2.2 确定测试
4.2.3 注册测试
4.2.4 注册结果监听者
4.3 Java命名和目录接口(JNDI)
4.3.1 理解JNDI的自举过程
4.3.2 Spring的SimpleNamingContext-Builder
4.3.3 避免JNDI
4.4.1 Java数据库连接(JDBC)
4.4.1 c3p
4.4.2 CommonsDBCP
4.4.3 Spring
4.5 Java事务API(JTA)
4.5.1 Java Open Transaction Manager(JOTM)
4.5.2 Atomikos TransaetionEssentials
4.6 Java消息服务(JMS)
4.6.1 创建发送者/接收者测试
4.6.2 在测试中使用ActiveMQ
4.7 Java持久API(JPA)
4.7.1 配置数据库
4.7.2 配置JPA提供者
4.7.3 编写测试
4.7.4 模拟一个容器
4.7.5 将Spring作为容器
4.8 Enterprise JavaBeans 3.0(EJB3)
4.8.1 消息驱动Bean
4.8.2 会话Bean
第5章 集成
5.1 Spring
5.2 Guice
5.3 DbUnit
5.4 HtmlUnit
5.5 Selenium
5.6 Swing UI测试
5.7 针对画图代码的测试
5.8 持续集成
5.9 本章小结
第6章 扩展TestNG
6.1 TestNG API
6.2 BeanShell
6.3 方法选择器
6.4 Annotation转换器
6.5 报告
6.6 编写自定义Annotation
6.7 本章小结
第7章 闲言碎
7.1 动机
7.2 TestNG哲学
7.3 关注和提供异常
7.4 有状态的测试
7.5 测试驱动开发的缺点
7.6 测试私有方法
7.7 测试与封装
7.8 调试器的威力
7.9 记日志的最佳实践
7.10 时间的价值
7.11 本章小结
附录A IDE集成
附录B TestNG JavaDoc
附录C testng.xml
附录D 从JUnit迁移
Cedric Beust是Google的高级软件工程师,也是Java开发社区的一名积极成员,广泛参与了最新Java版本的开发。他是TestNG项目的发起人和主要贡献者。
Hani Suleiman 是Formicary公司的CTO,这是一家专注于财务应用程序的咨询和门户软件公司。他是Java开发社区执行委员会的两名独立成员之一。
《Java测试新技术TestNG和高级概念》介绍了Java测试的新技术,主要内容包括:基本概念、测试设计模式、企业级测试、Java EE测试、集成和扩展TestNG等。《Java测试新技术TestNG和高级概念》通过针对有效测试Java应用程序以及围绕可测试性来设计应用程序和组件展示了这些有效的测试技术,并给出了每种测试方法的优点和不足,展示了解决常见问题的不同选择。《Java测试新技术TestNG和高级概念》注重实际应用,适合对测试感兴趣的Java开发者参考阅读。
比价列表