Java 测试驱动开发 PDF 文档
本书介绍如何将各种 TDD 最佳实践应用于 Java 开发,主要内容包括 :用 Java 语言进行 TDD 会用到的各种工具和框架,所需环境搭建 ;通过实际应用程序,展示 TDD 优点及开发中应注意的主要问题 ;TDD是如何通过模拟内部和外部依赖来提升速度的 ;如何重构既有应用程序 ;详细介绍所有 TDD 最佳实践。
本书适合所有 Java 开发人员,也适合用其他语言编程的程序员了解 TDD。
测试驱动开发面世已有一段时间,但依然未被很多人采用,因为它难以掌握。虽然理论很容易,但要熟练使用,必须经过大量实践。
多年来,本书作者一直在使用 TDD,并试图将其经验传授给你。身为开发人员,他们深信学习编码实践的最佳方式是编写代码和不断练习,本书秉承的正是这种理念——通过练习诠释所有TDD 概念。本书犹如一次旅行,期间,你有机会将各种 TDD 最佳实践应用于 Java 开发。这次旅行结束时,你将成为 TDD 黑带,你的软件开发工具中也会多一个法宝。
目录
第 1 章 为何要关心测试驱动开发
1.1 为何要使用 TDD
1.1.1 理解 TDD
1.1.2 红灯绿灯重构
1.1.3 速度是关键
1.1.4 TDD 并非测试方法
1.2 测试
1.2.1 黑盒测试
1.2.2 白盒测试
1.2.3 质量检查和质量保证的差别
1.2.4 更好的测试
1.3 模拟
1.4 可执行的文档
1.5 无需调试
1.6 小结
第 2 章 工具、框架和环境
2.1 Git
2.2 虚拟机
2.2.1 Vagrant
2.2.2 Docker
2.3 构建工具
2.4 集成开发环境
IDEA 演示项目
2.5 单元测试框架
2.5.1 JUnit
2.5.2 TestNG
2.6 Hamcrest 和 AssertJ
2.6.1 Hamcrest
2.6.2 AssertJ
2.7 代码覆盖率工具
JaCoCo
2.8 模拟框架
2.8.1 Mockito
2.8.2 EasyMock
2.8.3 PowerMock
2.9 用户界面测试
2.9.1 Web 测试框架
2.9.2 Selenium
2.9.3 Selenide
2.10 行为驱动开发
2.10.1 JBehave
2.10.2 Cucumber
2.11 小结
第 3 章 红灯-绿灯-重构——从失败到成功再到完美
3.1 使用 Gradle 和 JUnit 搭建环境
在 IntelliJ IDEA 中创建 Gradle/Java 项目
3.2 “红灯-绿灯-重构”过程
3.2.1 编写一个测试
3.2.2 运行所有测试并确认最后一个未通过
3.2.3 编写实现代码
3.2.4 运行所有测试
3.2.5 重构
3.2.6 重复
3.3 “井字游戏”的需求
3.4 开发“井字游戏”
3.4.1 需求 1
3.4.2 需求 2
3.4.3 需求 3
3.4.4 需求 4
3.5 代码覆盖率
3.6 更多练习
3.7 小结
第 4 章 单元测试——专注于当下而非过往
4.1 单元测试
4.1.1 何为单元测试
4.1.2 为何要进行单元测试
4.1.3 代码重构
4.1.4 为何不只使用单元测试
4.2 TDD 中的单元测试
4.3 TestNG
4.3.1 注解 @Test
4.3.2 注解 @BeforeSuite、@BeforeTest、@BeforeGroups、@AfterGroups、@AfterTest 和 @AfterSuite
4.3.3 注解 @BeforeClass 和 @AfterClass
4.3.4 注解 @BeforeMethod 和 @AfterMethod
4.3.5 注解参数 @Test(enable = false)
4.3.6 注解参数 @Test(expectedExceptions = SomeClass.class)
4.3.7 TestNG 和 JUnit 差别小结
4.4 “遥控军舰”的需求
4.5 开发“遥控军舰”
4.5.1 创建项目
4.5.2 辅助类
4.5.3 需求 1
4.5.4 需求 2
4.5.5 需求 3
4.5.6 需求 4
4.5.7 需求 5
4.5.8 需求 6
4.6 小结
第 5 章 设计——难以测试说明设计不佳
5.1 为何要关心设计
设计原则
5.2 Connect4
需求
5.3 完成 Connect4 实现后再测试
5.3.1 需求 1
5.3.2 需求 2
5.3.3 需求 3
5.3.4 需求 4
5.3.5 需求 5
5.3.6 需求 6
5.3.7 需求 7
5.3.8 需求 8
5.4 使用 TDD 实现 Connect4
5.4.1 Hamcrest
5.4.2 需求 1
5.4.3 需求 2
5.4.4 需求 3
5.4.5 需求 4
5.4.6 需求 5
5.4.7 需求 6
5.4.8 需求 7
5.4.9 需求 8
5.5 小结
第 6 章 模拟——消除外部依赖
6.1 模拟
6.1.1 为何使用模拟对象
6.1.2 术语
6.1.3 模拟对象
6.2 Mockito
6.3 “井字游戏”第二版的需求
6.4 开发“井字游戏”第二版
6.4.1 需求 1
6.4.2 需求 2
6.5 集成测试
6.5.1 分离测试
6.5.2 集成测试
6.6 小结
第 7 章 BDD——与整个团队协作
7.1 不同规范
7.1.1 文档
7.1.2 供程序员使用的文档
7.1.3 供非程序员使用的文档
7.2 行为驱动开发
7.2.1 叙述
7.2.2 场景
7.3 书店应用程序的 BDD 故事
7.4 JBehave
7.4.1 JBehave 运行器
7.4.2 待定步骤
7.4.3 Selenium 和 Selenide
7.4.4 JBehave 步骤
7.4.5 最后的验证
7.5 小结
第 8 章 重构遗留代码——使其重焕青春
8.1 遗留代码
遗留代码示例
8.2 编码套路
8.2.1 遗留代码处理套路
8.2.2 描述
8.2.3 技术说明
8.2.4 添加新功能
8.2.5 黑盒测试还是尖峰冲击测试
8.2.6 初步调查
8.2.7 应用遗留代码修改算法
8.2.8 提取并重写调用
8.2.9 消除状态的“基本类型偏执”坏味
8.3 小结
第 9 章 功能开关——将未完成的功能部署到生成环境
9.1 持续集成、持续交付和持续部署
9.2 功能开关
9.3 功能开关示例
9.3.1 实现 fibonacci 服务
9.3.2 使用模版引擎
9.4 小结
第 10 章 综述
10.1 TDD 概要
10.2 最佳实践
10.2.1 命名约定
10.2.2 流程
10.2.3 开发实践
10.2.4 工具
10.3 这只是开始
10.4 这并非终点
连接图灵
看完了
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/12/JQ12JZOFOC4u7gwV.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论