发表于2024-11-23
书[0名0]: | 有效的单元测试[按需印刷]|3804193 |
图书定价: | 59元 |
图书作者: | (芬)Lasse Koskela |
出版社: | [1机1] 械工业出版社 |
出版日期: | 2014/11/1 0:00:00 |
ISBN号: | 9787111483434 |
开本: | 16开 |
页数: | 198 |
版次: | 1-1 |
作者简介 |
Lasse Koskela 资深敏捷技术实践专家、敏捷教练、培洲师、顾问和程序员,具有数十年计算 [1机1] 程序设计和开发经验。他精通多种编程语言,尤其对Java、Ruby、C/C++有[0独0]到见解,热衷于编程和追逐前沿技术,在程序设计、软件工程、项目管理等多个[0领0]域颇有建树。目前他主攻开源项目,帮助企业提高生产力,而且经常在世界各地的[0会0]议上发表演讲。除本书外,他还著有《测试驱动开发的艺术》。申健 江湖人称“申导”,创客、王匠、敏捷教练、软件开发顾问,致力于启发创意、促进协作、交付价值的事业。1994年迷上汁算 [1机1] 编程。从南京[0大0][0学0]毕业后,在跨[0国0]企业从事近十年的研发和管理工作,涉及通信、金融、互联网等[0领0]域,拥有丰富的移动应用程序和面向服务分布式系统的项目经验,擅长使用不同的技术来实现面向服务的分布式架构设计和整体解决方案,熟悉J2EE、Python、嵌入式C、 [0No0]de.js技术及iOS等平台。2007年开始进入敏捷开发实践,拥有CSP、CSM和CSPO等认证。他曾在诺基亚西门子担任高级工程师和研发经理,在渣打银行担任资深工程师和敏捷教练等。目前主要从事外部敏捷教练工作,提供组织转型和技术实践的咨询与培训服务。同时还是Scrum Aliiance注册讲师、1nfoQ中文站编辑、中[0国0]敏捷教练组成员,以及敏捷之旅、 ScrumGathering、QClub等社区活动的讲师与组织者。他曾翻译《SOA with REST》等书籍。个人网站:www.JackyShen.com |
内容简介 |
这是一本关于单元测试的系统实践指南,由资深敏捷技术实践专家撰写,不仅全面阐释了单元测试用于软件设计的工具、方[0法0]、原则和佳实践,而且对各种测试常见问题进行了深入分析,包含[0大0]量实践案例,可操作性强,能为用户高效编写[0优0]秀测试提供有效指导,让组织持续创造成功的产[0品0]和服务。 本书分为三部分,共9章。[0第0]一部分([0第0]1—3章)主要阐述测试的目的与原因,并分析作为常用工具的测试替身的作用。[0第0]1章先从整体阐释测试先行所带来的价值,以及各种对测试和测试质量的影响,,[0第0]2章定义如何才能写出[0优0]秀的测试。[0第0]3章讨沦现代程序员基本的工具之一——测试替身。[0第0]二部分([0第0]4—6章)的目标是帮助我们更好地识别并修复测试代码中的坏味道。[0第0]4章展示破坏测试可读性的坏味道。[0第0]5章继续对破坏可维护性的测试提供建议。[0第0]6章涉及有关脆弱或不可靠的测试坏味道。[0第0]三部分([0第0]7—9章)涉~Java程序员在编写测试时随时可能碰到的话题。[0第0]7章介绍可测的设汁的定义与作用。[0第0]8章探讨JVM语言的共生,以及如何用另一门语言来测试Java代码。[0第0]9章专门讨论对构建进行加速的问题。此外还包括两个附录,附录A介绍使用JUnit编写测试的入门[0知0]识。附录B探讨通过JUnit的API来扩展其内置功能。 |
目录 |
《有效的单元测试》 译者序 序言 前言 致谢 [0第0]一部分 基础 [0第0]1章 [0优0]秀测试的承诺 2 1.1 [0国0]情咨文:编写更好的测试 3 1.2 测试的价值 3 1.2.1 生产力的因素 6 1.2.2 设计潜力的曲线 8 1.3 测试作为设计工具 9 1.3.1 测试驱动开发 9 1.3.2 行为驱动开发 11 1.4 小结 12 [0第0]2章 寻求[0优0]秀 13 2.1 可读的代码才是可维护的代码 14 2.2 结构有助于理解事物 16 2.3 如果测试了错误的东西就不好了 17 2.4 [0独0]立的测试易于单[0独0]运行 18 2.5 可靠的测试才是可靠的 21 2.6 每个行业都有其工具而测试也不例外 22 2.7 小结 23 [0第0]3章 测试替身 24 3.1 测试替身的威力 25 3.1.1 隔离被测代码 26 3.1.2 加速执行测试 27 3.1.3 使执行变得确定 27 3.1.4 模拟特殊情况 28 3.1.5 暴露隐藏的信息 29 3.2 测试替身的类型 30 3.2.1 测试桩通常是短小的 30 3.2.2 伪造对象做事不产生副作用 31 3.2.3 测试间谍偷取秘密 32 3.2.4 模拟对象反对惊喜 34 3.3 使用测试替身的指南 35 3.3.1 为测试挑选合适的替身 35 3.3.2 准备、执行、断言 36 3.3.3 检查行为,而非实现 37 3.3.4 挑选你的工具 38 3.3.5 注入依赖 39 3.4 小结 39 [0第0]二部分 目录 [0第0]4章 可读性 42 4.1 基本断言 43 4.1.1 示例 43 4.1.2 该对它做点儿什么 44 4.1.3 小结 45 4.2 过度断言 46 4.2.1 示例 46 4.2.2 该对它做点儿什么 48 4.2.3 小结 50 4.3 按位断言 50 4.3.1 示例 50 4.3.2 该对它做点儿什么 51 4.3.3 小结 51 4.4 附加细节 52 4.4.1 示例 52 4.4.2 该对它做点儿什么 53 4.4.3 小结 54 4.5 人格分裂 55 4.5.1 示例 55 4.5.2 该对它做点儿什么 56 4.5.3 小结 58 4.6 逻辑分割 59 4.6.1 示例 59 4.6.2 该对它做点儿什么 61 4.6.3 小结 63 4.7 魔[0法0]数字 64 4.7.1 示例 64 4.7.2 该对它做点儿什么 64 4.7.3 小结 65 4.8 冗长安装 65 4.8.1 示例 66 4.8.2 该对它做点儿什么 67 4.8.3 小结 68 4.9 过分保护 68 4.9.1 示例 69 4.9.2 该对它做点儿什么 69 4.9.3 小结 70 4.10 总结 70 [0第0]5章 可维护性 71 5.1 重复 72 5.1.1 示例 72 5.1.2 该对它做点儿什么 73 5.1.3 小结 75 5.2 条件逻辑 75 5.2.1 示例 76 5.2.2 该对它做点儿什么 76 5.2.3 小结 77 5.3 脆弱的测试 78 5.3.1 示例 78 5.3.2 该对它做点儿什么 79 5.3.3 小结 80 5.4 残缺的文件路径 80 5.4.1 示例 81 5.4.2 该对它做点儿什么 81 5.4.3 小结 83 5.5 的临时文件 83 5.5.1 示例 84 5.5.2 该对它做点儿什么 85 5.5.3 小结 86 5.6 沉睡的蜗牛 86 5.6.1 示例 87 5.6.2 该对它做点儿什么 88 5.6.3 小结 89 5.7 像素完美 89 5.7.1 示例 89 5.7.2 该对它做点儿什么 90 5.7.3 小结 93 5.8 参数化混乱 94 5.8.1 示例 95 5.8.2 该对它做点儿什么 98 5.8.3 小结 99 5.9 方[0法0]间缺乏内聚 100 5.9.1 示例 100 5.9.2 该对它做点儿什么 101 5.9.3 小结 104 5.10 总结 104 [0第0]6章 可信赖 106 6.1 注释掉的测试 107 6.1.1 示例 107 6.1.2 该对它做点儿什么 108 6.1.3 小结 108 6.2 歧义注释 109 6.2.1 示例 109 6.2.2 该对它做点儿什么 110 6.2.3 小结 111 6.3 永不失败的测试 111 6.3.1 示例 112 6.3.2 该对它做点儿什么 112 6.3.3 小结 113 6.4 轻率承诺 113 6.4.1 示例 114 6.4.2 该对它做点儿什么 115 6.4.3 小结 116 6.5 降低期望 117 6.5.1 示例 117 6.5.2 该对它做点儿什么 118 6.5.3 小结 118 6.6 平台偏见 119 6.6.1 示例 119 6.6.2 该对它做点儿什么 120 6.6.3 小结 121 6.7 有条件的测试 122 6.7.1 示例 122 6.7.2 该对它做点儿什么 123 6.7.3 小结 124 6.8 总结 124 [0第0]三部分 消遣 [0第0]7章 可测的设计 126 7.1 什么是可测的设计 126 7.1.1 模块化设计 127 7.1.2 SOLID设计原则 128 7.1.3 上下文中的模块化设计 129 7.1.4 以测试驱动出模块化设计 130 7.2 可测性的问题 130 7.2.1 无[0法0]实例化某个类 130 7.2.2 无[0法0]调用某个方[0法0] 131 7.2.3 无[0法0]观察到输出 131 7.2.4 无[0法0]替换某个协作者 131 7.2.5 无[0法0]覆盖某个方[0法0] 132 7.3 可测的设计的指南 132 7.3.1 避免复杂的私有方[0法0] 133 7.3.2 避免final方[0法0] 133 7.3.3 避免static方[0法0] 134 7.3.4 使用new时要[0当0]心 134 7.3.5 避免在构造函数中包含逻辑 135 7.3.6 避免单例 137 7.3.7 组合[0优0]于继承 138 7.3.8 封装外部库 138 7.3.9 避免服务查找 139 7.4 小结 140 [0第0]8章 用其他JVM语言来编写测试 142 8.1 混合使用JVM语言的前提 142 8.1.1 通用收益 143 8.1.2 编写测试 144 8.2 用Groovy来编写测试 146 8.2.1 简化的测试setup 146 8.2.2 Groovy式的JUnit 4测试 148 8.3 BDD工具的表达力 149 8.3.1 用easyb写Groovy需求说明 149 8.3.2 Spock Framework:编写更具表达力测试的激素 150 8.3.3 Spock Framework的测试替身也打了激素 152 8.4 小结 153 [0第0]9章 加速执行测试 155 9.1 追求速度 156 9.1.1 对速度的需要 156 9.1.2 进入状况 156 9.1.3 对构建进行性能分析 157 9.1.4 对测试进行性能分析 160 9.2 令测试代码加速 162 9.2.1 别睡觉,除非你累了 163 9.2.2 [0当0]心膨胀的基类 163 9.2.3 [0当0]心冗余的setup与teardown 165 9.2.4 挑剔地添加新测试 166 9.2.5 保持本地运行,保持快速 167 9.2.6 抵御访问数据库的诱惑 168 9.2.7 没有比文件I/O更慢的I/O了 169 9.3 令构建加速 171 9.3.1 RAM磁盘带来更快的I/O 172 9.3.2 并行构建 173 9.3.3 改换为高性能CPU 177 9.3.4 分布式构建 179 9.4 小结 183 附录A JUnit入门 185 附录B 扩展JUnit 192 |
[按需印刷]有效的单元测试 计算机与互联网 书籍|3804193 下载 mobi pdf epub txt 电子书 格式 2024
[按需印刷]有效的单元测试 计算机与互联网 书籍|3804193 下载 mobi epub pdf 电子书[按需印刷]有效的单元测试 计算机与互联网 书籍|3804193 mobi epub pdf txt 电子书 格式下载 2024