图书介绍
C++程序设计实践与技巧 测试驱动开发 = MODERN C++ PROGRAMMING WITH TEST-DRIVEN DEVELOPMENT CODE BETTERPDF|Epub|txt|kindle电子书版本网盘下载
- SLEEP BETTER 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115438959
- 出版时间:2017
- 标注页数:284页
- 文件大小:45MB
- 文件页数:306页
- 主题词:
PDF下载
下载说明
C++程序设计实践与技巧 测试驱动开发 = MODERN C++ PROGRAMMING WITH TEST-DRIVEN DEVELOPMENT CODE BETTERPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 环境设置1
1.1 开场白1
1.2 示例程序1
1.3 C++编译器2
1.3.1 Ubuntu2
1.3.2 OS X2
1.3.3 Windows3
1.4 CMake4
1.5 Google Mock5
1.5.1 安装Google Mock5
1.5.2 创建main函数运行Google Mock测试7
1.6 CppUTest7
1.6.1 安装CppUTest7
1.6.2 创建main函数以运行CppUTest测试8
1.7 libcurl8
1.8 JsonCpp8
1.9 rlog9
1.10 Boost10
1.11 构建示例并运行测试10
1.12 结束语11
第2章 测试驱动开发:第一个示例12
2.1 开场白12
2.2 Soundex类12
2.3 开始吧13
2.4 去掉不干净的代码19
2.5 增量性21
2.6 fixture与设置23
2.7 思索与测试驱动开发25
2.8 测试驱动与测试28
2.9 如果出现别的情况呢30
2.10 一次只做一件事31
2.11 限制长度32
2.12 丢掉元音34
2.13 让测试自我澄清34
2.14 跳出条条框框来测试36
2.15 言归正传38
2.16 重构至单一责任的函数39
2.17 收尾工作40
2.18 漏了什么测试吗41
2.19 解决方案42
2.20 Soundex类43
2.21 结束语46
第3章 测试驱动开发基础47
3.1 开场白47
3.2 单元测试和测试驱动开发基础知识47
3.2.1 单元测试的组织和执行47
3.2.2 测试驱动单元48
3.3 测试驱动开发周期:红—绿—重构49
3.4 测试驱动开发的三条准则50
3.5 表里不一51
3.5.1 运行了错误的测试52
3.5.2 测试了错误的代码52
3.5.3 不当的测试规范53
3.5.4 对系统的无效假设53
3.5.5 不佳的测试顺序53
3.5.6 相关联的产品代码56
3.5.7 过度编码58
3.5.8 确定性测试59
3.5.9 停下来想一下59
3.6 成功运用测试驱动开发的思维59
3.6.1 增量性59
3.6.2 测试行为而非方法60
3.6.3 使用测试来描述行为60
3.6.4 保持简单61
3.6.5 恪守测试驱动开发周期62
3.7 成功运用测试驱动开发的方法62
3.7.1 下一个测试是什么62
3.7.2 十分钟限制64
3.7.3 代码缺陷64
3.7.4 禁用测试65
3.8 结束语66
第4章 测试结构67
4.1 开场白67
4.2 组织方式67
4.2.1 文件组织67
4.2.2 fixture68
4.2.3 Setup与Tea rdown69
4.2.4 Arrange-Act-Assert/Given-When-Then72
4.3 快速测试、慢速测试、过滤器和测试集73
4.4 断言75
4.4.1 经典的断言形式76
4.4.2 Hamcrest断言76
4.4.3 选择正确的断言78
4.4.4 浮点数比较78
4.4.5 基于异常的测试79
4.5 探查私有成员81
4.5.1 私有数据81
4.5.2 私有行为82
4.6 测试和测试驱动:参数化的测试及其他方法85
4.6.1 参数化测试85
4.6.2 测试中的注释87
4.7 结束语87
第5章 测试替身88
5.1 开场白88
5.2 依赖问题88
5.3 测试替身89
5.4 手动打造的测试替身90
5.5 在使用测试替身时提升测试的抽象程度94
5.6 使用模拟对象工具96
5.6.1 定义一个派生类96
5.6.2 设立期望97
5.6.3 松模拟和严模拟100
5.6.4 模拟对象中的顺序101
5.6.5 巧妙的模拟工具特性102
5.6.6 排除模拟失败104
5.6.7 一个还是两个测试104
5.7 让测试替身各就各位105
5.7.1 覆写工厂方法和覆写Getter105
5.7.2 使用工厂107
5.7.3 通过模板参数109
5.7.4 注入工具110
5.8 设计会变化110
5.8.1 内聚与耦合110
5.8.2 转嫁私有依赖112
5.9 使用测试替身的策略113
5.9.1 探索设计113
5.9.2 mock流派114
5.9.3 明智地使用测试替身115
5.10 其他关于测试替身的主题115
5.10.1 怎么称呼它们116
5.10.2 测试替身该放在哪116
5.10.3 虚函数表和性能117
5.10.4 模拟具体的类117
5.11 结束语118
第6章 增量设计119
6.1 开场白119
6.2 简单设计119
6.2.1 重复代码的代价120
6.2.2 投资管理器120
6.2.3 投资管理器中的简单重复122
6.2.4 我们真的能坚持增量方法吗124
6.2.5 更多的重复129
6.2.6 小方法的好处132
6.2.7 完成功能134
6.2.8 增量设计让事情变得简单138
6.3 预先设计在哪141
6.3.1 哪里才会讨论真正的设计呢142
6.3.2 简单设计原则和经典设计理念会在哪起冲突143
6.4 阻碍重构的因素143
6.5 结束语145
第7章 高质量测试146
7.1 开场白146
7.2 测试先行146
7.2.1 快速146
7.2.2 独立148
7.2.3 可重复149
7.2.4 自我验证150
7.2.5 及时150
7.3 一个测试一个断言150
7.4 测试抽象153
7.4.1 臃肿的初始化153
7.4.2 不相关的细节154
7.4.3 缺失的抽象156
7.4.4 多重断言157
7.4.5 不相关的数据157
7.4.6 不必要的测试代码158
7.5 结束语164
第8章 遗留代码的挑战165
8.1 开场白165
8.2 遗留代码165
8.3 法则166
8.4 遗留应用程序167
8.5 保持测试驱动开发的心态170
8.6 支持测试的安全重构171
8.7 添加测试刻画已有行为174
8.8 被遗留代码转移注意力175
8.9 为rlog创建测试替身175
8.10 测试驱动开发改动179
8.11 新的场景181
8.12 寻求更快测试的简要探索182
8.13 立竿见影的提炼183
8.14 用成员变量查看状态186
8.15 用mock查看状态187
8.16 其他注入技巧191
8.17 用Mikado方法大规模改动代码192
8.18 Mikado方法概览192
8.19 用Mikado移动一个方法193
8.20 有关Mikado方法的更多思考202
8.21 这样做值得吗203
8.22 结束语203
第9章 测试驱动开发与多线程204
9.1 开场白204
9.2 测试驱动开发多线程应用的核心概念204
9.3 示例程序GeoServer205
9.4 性能要求211
9.5 设计异步方案213
9.6 依然简单的测试驱动216
9.7 为多线程做好准备218
9.8 暴露并发性问题220
9.9 在测试中创建客户端线程222
9.10 在ThreadPool中创建多个线程224
9.11 回到GeoServer226
9.12 结束语230
第10章 测试驱动开发的其他概念和讨论231
10.1 开场白231
10.2 测试驱动开发与性能231
10.2.1 性能优化测试的策略232
10.2.2 相关单元级性能测试233
10.2.3 尝试优化GeoServer代码234
10.2.4 TestTimer类235
10.2.5 性能和小函数236
10.2.6 推荐237
10.3 单元测试、集成测试和验收测试238
10.3.1 测试驱动开发如何与验收测试建立联系239
10.3.2 程序员定义的集成测试239
10.3.3 测试驱动开发和验收测试驱动开发的重合部分240
10.4 变换优先级假设241
10.4.1 了解变换241
10.4.2 三角法242
10.4.3 浏览测试列表243
10.5 编写断言252
10.5.1 断言—行为—排列253
10.5.2 示例程序优先,或至少第二253
10.6 结束语255
第11章 发展和维持测试驱动开发256
11.1 开场白256
11.2 向非技术人员解释测试驱动开发256
11.2.1 测试驱动什么257
11.2.2 关于TDD的研究259
11.3 不良测试的死亡漩涡(亦称为SCUMmy周期)260
11.4 结对编程261
11.4.1 结对原则262
11.4.2 结对编程与测试驱动开发262
11.4.3 角色切换263
11.5 Kata和Dojo264
11.5.1 在测试驱动开发中应用Kata264
11.5.2 Dojo265
11.6 有效地使用代码覆盖率统计266
11.7 持续集成267
11.8 为团队制定测试驱动开发标准268
11.9 保持与社区同步268
11.9.1 阅读测试268
11.9.2 博客与论坛269
11.10 结束语269
附录A 比较单元测试工具270
附录B 代码Kata:罗马数字转换器273
附录C 参考文献282