资源名称:Java测试驱动开发 PDF 内容简介: 本书介绍如何将各种TDD 最佳实践应用于Java 开发,主要内容包括:用Java 语言进行TDD 会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD 优点及开发中应注意的主要问题;TDD是如何通过模拟内部和外部依赖来提升速度的;如何重构既有应用程序;详细介绍所有TDD 最佳实践。 作者简介: Viktor Farcic 资深软件架构师,Docker船长,Java开发专家,热衷于测试驱动开发、行为驱动开发、持续集成、持续交付和持续部署。 他把多年经验都分享在了博客上,深受读者欢迎:http://TechnologyConversations.com。 Alex Garcia 资深Java程序员,敏捷实践拥趸,热衷于学习新语言、新范式、新框架。 资源目录: 第1章 为何要关心测试驱动开发 1 1.1 为何要使用TDD 1 1.1.1 理解TDD 3 1.1.2 红灯?绿灯?重构 3 1.1.3 速度是关键 4 1.1.4 TDD并非测试方法 4 1.2 测试 5 1.2.1 黑盒测试 5 1.2.2 白盒测试 5 1.2.3 质量检查和质量保证的差别 6 1.2.4 更好的测试 6 1.3 模拟 7 1.4 可执行的文档 7 1.5 无需调试 9 1.6 小结 9 第2章 工具、框架和环境 10 2.1 Git 10 2.2 虚拟机 11 2.2.1 Vagrant 11 2.2.2 Docker 13 2.3 构建工具 14 2.4 集成开发环境 15 2.5 单元测试框架 16 2.5.1 JUnit 17 2.5.2 TestNG 19 2.6 Hamcrest和AssertJ 21 2.6.1 Hamcrest 21 2.6.2 AssertJ 22 2.7 代码覆盖率工具 23 2.8 模拟框架 24 2.8.1 Mockito 26 2.8.2 EasyMock 28 2.8.3 PowerMock 29 2.9 用户界面测试 29 2.9.1 Web测试框架 30 2.9.2 Selenium 30 2.9.3 Selenide 31 2.10 行为驱动开发 33 2.10.1 JBehave 33 2.10.2 Cucumber 35 2.11 小结 37 第3章 红灯?绿灯?重构——从失败到成功再到完美 38 3.1 使用Gradle和JUnit搭建环境 39 3.2 “红灯?绿灯?重构”过程 41 3.2.1 编写一个测试 41 3.2.2 运行所有测试并确认最后一个未通过 41 3.2.3 编写实现代码 42 3.2.4 运行所有测试 42 3.2.5 重构 42 3.2.6 重复 43 3.3 “井字游戏”的需求 43 3.4 开发“井字游戏” 43 3.4.1 需求1 44 3.4.2 需求2 49 3.4.3 需求3 52 3.4.4 需求4 57 3.5 代码覆盖率 58 3.6 更多练习 59 3.7 小结 60 第4章 单元测试——专注于当下而非过往 61 4.1 单元测试 61 4.1.1 何为单元测试 62 4.1.2 为何要进行单元测试 62 4.1.3 代码重构 62 4.1.4 为何不只使用单元测试 63 4.2 TDD中的单元测试 64 4.3 TestNG 64 4.3.1 注解@Test 64 4.3.2 注解@BeforeSuite、@Be- foreTest、@BeforeGroups、 @After Groups、@AfterTest和@AfterSuite 65 4.3.3 注解@BeforeClass和@AfterClass 65 4.3.4 注解@BeforeMethod和@AfterMethod 66 4.3.5 注解参数@Test(enable = false) 66 4.3.6 注解参数@Test(expected- Exceptions = SomeClass. class) 66 4.3.7 TestNG和JUnit差别小结 66 4.4 “遥控军舰”的需求 66 4.5 开发“遥控军舰” 67 4.5.1 创建项目 67 4.5.2 辅助类 69 4.5.3 需求1 69 4.5.4 需求2 72 4.5.5 需求3 74 4.5.6 需求4 75 4.5.7 需求5 77 4.5.8 需求6 80 4.6 小结 81 第5章 设计——难以测试说明设计不佳 82 5.1 为何要关心设计 82 5.2 Connect4 84 5.3 完成Connect4实现后再测试 85 5.3.1 需求1 85 5.3.2 需求2 86 5.3.3 需求3 87 5.3.4 需求4 88 5.3.5 需求5 89 5.3.6 需求6 89 5.3.7 需求7 90 5.3.8 需求8 91 5.4 使用TDD实现Connect4 92 5.4.1 Hamcrest 92 5.4.2 需求1 93 5.4.3 需求2 93 5.4.4 需求3 96 5.4.5 需求4 97 5.4.6 需求5 99 5.4.7 需求6 99 5.4.8 需求7 100 5.4.9 需求8 101 5.5 小结 103 第6章 模拟——消除外部依赖 104 6.1 模拟 104 6.1.1 为何使用模拟对象 105 6.1.2 术语 106 6.1.3 模拟对象 106 6.2 Mockito 107 6.3 “井字游戏”第二版的需求 107 6.4 开发“井字游戏”第二版 107 6.4.1 需求1 108 6.4.2 需求2 118 6.5 集成测试 124 6.5.1 分离测试 124 6.5.2 集成测试 125 6.6 小结 127 第7章 BDD——与整个团队协作 128 7.1 不同规范 128 7.1.1 文档 129 7.1.2 供程序员使用的文档 129 7.1.3 供非程序员使用的文档 130 7.2 行为驱动开发 130 7.2.1 叙述 131 7.2.2 场景 132 7.3 书店应用程序的BDD故事 133 7.4 JBehave 136 7.4.1 JBehave运行器 136 7.4.2 待定步骤 137 7.4.3 Selenium和Selenide 138 7.4.4 JBehave步骤 139 7.4.5 最后的验证 144 7.5 小结 146 第8章 重构遗留代码——使其重焕青春 147 8.1 遗留代码 147 8.2 编码套路 156 8.2.1 遗留代码处理套路 157 8.2.2 描述 157 8.2.3 技术说明 157 8.2.4 添加新功能 157 8.2.5 黑盒测试还是尖峰冲击测试 157 8.2.6 初步调查 158 8.2.7 应用遗留代码修改算法 161 8.2.8 提取并重写调用 166 8.2.9 消除状态的“基本类型偏执”坏味 170 8.3 小结 173 第9章 功能开关——将未完成的功能部署到生成环境 175 9.1 持续集成、持续交付和持续部署 175 9.2 功能开关 177 9.3 功能开关示例 178 9.3.1 实现fibonacci服务 181 9.3.2 使用模版引擎 184 9.4 小结 187 第10章 综述 188 10.1 TDD概要 188 10.2 最佳实践 189 10.2.1 命名约定 189 10.2.2 流程 191 10.2.3 开发实践 192 10.2.4 工具 195 10.3 这只是开始 196 10.4 这并非终点 196 资源截图:
资源名称:Java测试驱动开发 PDF 内容简介: 本书介绍如何将各种TDD 最佳实践应用于Java 开发,主要内容包括:用Java 语言进行TDD 会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD 优点及开发中应注意的主要问题;TDD是如何通过模拟内部和外部依赖来提升速度的;如何重构既有应用程序;详细介绍所有TDD 最佳实践。 作者简介: Viktor Farcic 资深软件架构师,Docker船长,Java开发专家,热衷于测试驱动开发、行为驱动开发、持续集成、持续交付和持续部署。 他把多年经验都分享在了博客上,深受读者欢迎:http://TechnologyConversations.com。 Alex Garcia 资深Java程序员,敏捷实践拥趸,热衷于学习新语言、新范式、新框架。 资源目录: 第1章 为何要关心测试驱动开发 1 1.1 为何要使用TDD 1 1.1.1 理解TDD 3 1.1.2 红灯?绿灯?重构 3 1.1.3 速度是关键 4 1.1.4 TDD并非测试方法 4 1.2 测试 5 1.2.1 黑盒测试 5 1.2.2 白盒测试 5 1.2.3 质量检查和质量保证的差别 6 1.2.4 更好的测试 6 1.3 模拟 7 1.4 可执行的文档 7 1.5 无需调试 9 1.6 小结 9 第2章 工具、框架和环境 10 2.1 Git 10 2.2 虚拟机 11 2.2.1 Vagrant 11 2.2.2 Docker 13 2.3 构建工具 14 2.4 集成开发环境 15 2.5 单元测试框架 16 2.5.1 JUnit 17 2.5.2 TestNG 19 2.6 Hamcrest和AssertJ 21 2.6.1 Hamcrest 21 2.6.2 AssertJ 22 2.7 代码覆盖率工具 23 2.8 模拟框架 24 2.8.1 Mockito 26 2.8.2 EasyMock 28 2.8.3 PowerMock 29 2.9 用户界面测试 29 2.9.1 Web测试框架 30 2.9.2 Selenium 30 2.9.3 Selenide 31 2.10 行为驱动开发 33 2.10.1 JBehave 33 2.10.2 Cucumber 35 2.11 小结 37 第3章 红灯?绿灯?重构——从失败到成功再到完美 38 3.1 使用Gradle和JUnit搭建环境 39 3.2 “红灯?绿灯?重构”过程 41 3.2.1 编写一个测试 41 3.2.2 运行所有测试并确认最后一个未通过 41 3.2.3 编写实现代码 42 3.2.4 运行所有测试 42 3.2.5 重构 42 3.2.6 重复 43 3.3 “井字游戏”的需求 43 3.4 开发“井字游戏” 43 3.4.1 需求1 44 3.4.2 需求2 49 3.4.3 需求3 52 3.4.4 需求4 57 3.5 代码覆盖率 58 3.6 更多练习 59 3.7 小结 60 第4章 单元测试——专注于当下而非过往 61 4.1 单元测试 61 4.1.1 何为单元测试 62 4.1.2 为何要进行单元测试 62 4.1.3 代码重构 62 4.1.4 为何不只使用单元测试 63 4.2 TDD中的单元测试 64 4.3 TestNG 64 4.3.1 注解@Test 64 4.3.2 注解@BeforeSuite、@Be- foreTest、@BeforeGroups、 @After Groups、@AfterTest和@AfterSuite 65 4.3.3 注解@BeforeClass和@AfterClass 65 4.3.4 注解@BeforeMethod和@AfterMethod 66 4.3.5 注解参数@Test(enable = false) 66 4.3.6 注解参数@Test(expected- Exceptions = SomeClass. class) 66 4.3.7 TestNG和JUnit差别小结 66 4.4 “遥控军舰”的需求 66 4.5 开发“遥控军舰” 67 4.5.1 创建项目 67 4.5.2 辅助类 69 4.5.3 需求1 69 4.5.4 需求2 72 4.5.5 需求3 74 4.5.6 需求4 75 4.5.7 需求5 77 4.5.8 需求6 80 4.6 小结 81 第5章 设计——难以测试说明设计不佳 82 5.1 为何要关心设计 82 5.2 Connect4 84 5.3 完成Connect4实现后再测试 85 5.3.1 需求1 85 5.3.2 需求2 86 5.3.3 需求3 87 5.3.4 需求4 88 5.3.5 需求5 89 5.3.6 需求6 89 5.3.7 需求7 90 5.3.8 需求8 91 5.4 使用TDD实现Connect4 92 5.4.1 Hamcrest 92 5.4.2 需求1 93 5.4.3 需求2 93 5.4.4 需求3 96 5.4.5 需求4 97 5.4.6 需求5 99 5.4.7 需求6 99 5.4.8 需求7 100 5.4.9 需求8 101 5.5 小结 103 第6章 模拟——消除外部依赖 104 6.1 模拟 104 6.1.1 为何使用模拟对象 105 6.1.2 术语 106 6.1.3 模拟对象 106 6.2 Mockito 107 6.3 “井字游戏”第二版的需求 107 6.4 开发“井字游戏”第二版 107 6.4.1 需求1 108 6.4.2 需求2 118 6.5 集成测试 124 6.5.1 分离测试 124 6.5.2 集成测试 125 6.6 小结 127 第7章 BDD——与整个团队协作 128 7.1 不同规范 128 7.1.1 文档 129 7.1.2 供程序员使用的文档 129 7.1.3 供非程序员使用的文档 130 7.2 行为驱动开发 130 7.2.1 叙述 131 7.2.2 场景 132 7.3 书店应用程序的BDD故事 133 7.4 JBehave 136 7.4.1 JBehave运行器 136 7.4.2 待定步骤 137 7.4.3 Selenium和Selenide 138 7.4.4 JBehave步骤 139 7.4.5 最后的验证 144 7.5 小结 146 第8章 重构遗留代码——使其重焕青春 147 8.1 遗留代码 147 8.2 编码套路 156 8.2.1 遗留代码处理套路 157 8.2.2 描述 157 8.2.3 技术说明 157 8.2.4 添加新功能 157 8.2.5 黑盒测试还是尖峰冲击测试 157 8.2.6 初步调查 158 8.2.7 应用遗留代码修改算法 161 8.2.8 提取并重写调用 166 8.2.9 消除状态的“基本类型偏执”坏味 170 8.3 小结 173 第9章 功能开关——将未完成的功能部署到生成环境 175 9.1 持续集成、持续交付和持续部署 175 9.2 功能开关 177 9.3 功能开关示例 178 9.3.1 实现fibonacci服务 181 9.3.2 使用模版引擎 184 9.4 小结 187 第10章 综述 188 10.1 TDD概要 188 10.2 最佳实践 189 10.2.1 命名约定 189 10.2.2 流程 191 10.2.3 开发实践 192 10.2.4 工具 195 10.3 这只是开始 196 10.4 这并非终点 196 资源截图:
历史检测记录
同类资源
动力节点JavaSE进阶基础视频教程 JAVA基础教程 清晰无水印
Java教学 某前端大牛工作室2018年4月班视频教程 价值899元
java集群实战视频教程
疯狂JAVA之李刚老师_javaScript视频教程打包 百度云在线教学下载
Java高级技巧Java开发企业级权限管理系统视频教程
精通高级RxJava 2响应式编程思想移动端开发秒速教程
Java企业级电商项目架构 Tomcat集群与Redis分布式部署视频教程
前端JavaScript面试技巧前端JS面试讲座
网易云课堂的Java入门课程 程序设计入门 Java语言
Javascript之Node.JS智能经典课程
添加微信,反馈问题
微信及时反馈问题,方便沟通,请备注 ❤️