JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码。《编写可测试的JavaScript代码》的目标是教授如何为客户端和服务器编写和维护可测试的JavaScript代码。全书共8章。首先介绍了什么是可测试的代码,然后分别从代码复杂度、架构、单元测试、代码覆盖率、集成测试、性能测试、负载测试、调试和自动化等角度详细介绍。书中丰富的示例能够帮助读者从头开始养成好的代码编写习惯,提升测试效率及代码的可维护性。
《编写可测试的JavaScript代码》的作者曾先后在YouTube、Yahoo!以及Google等公司从事前端开发及测试相关工作,具有丰富的经验。《编写可测试的JavaScript代码》主要针对那些想成为JavaScript专业开发人员的人;也适合初中级水平或者专家级别的开发人员参考阅读。
第1章 可测试的JavaScript 1
1.1 现有技术 2
1.1.1 敏捷开发 3
1.1.2 测试驱动开发 4
1.1.3 行为驱动开发 5
1.1.4 哪种方式最好? 6
1.2 代码是让人用的 7
1.2.1 为何要编写可测试的代码 7
1.2.2 什么是可测试的代码 9
1.2.3 如何编写可测试的代码 10
1.3 卓越的应用程序代码 11
1.3.1 测试 11
1.3.2 调试 12
1.4 小结 12
第2章 复杂度 13
2.1 代码大小 14
2.2 JSLint 20
2.3 圈复杂度 24
2.4 重用 28
2.5 扇出 30
2.6 扇入 40
2.7 耦合 40
2.7.1 内容耦合 41
2.7.2 公共耦合 41
2.7.3 控制耦合 41
2.7.4 印记耦合 42
2.7.5 数据耦合 42
2.7.6 无耦合 42
2.7.7 实例化 42
2.8 耦合性度量 43
2.9 现实中的耦合 43
2.9.1 测试耦合代码 46
2.10 依赖注入 47
2.11 注释 50
2.11.1 YUIDoc 50
2.11.2 JSDoc 52
2.11.3 Docco/Rocco 54
2.12 人工测试 56
2.13 小结 58
第3章 基于事件的架构 59
3.1 基于事件编程的好处 59
3.2 事件集线器 60
3.2.1 使用事件集线器 62
3.2.2 事件的响应 67
3.2.3 基于事件的架构与MVC架构 69
3.2.4 基于事件的架构与面向对象编程 69
3.2.5 基于事件的架构与软件即服务 70
3.3 Web应用程序 70
3.4 测试基于事件的架构 71
3.5 基于事件架构的说明 75
3.5.1 可伸缩性 75
3.5.2 广播 75
3.5.3 运行时检测 75
3.5.4 安全性 76
3.5.5 状态 76
3.6 更智能的集线器:事件交换机 77
3.6.1 部署 77
3.6.2 一种实现 79
3.6.3 会话 82
3.6.4 可扩展性 82
3.7 小结 83
第4章 单元测试 84
4.1 单元测试框架 84
4.2 开始编写测试 85
4.3 编写好的单元测试 87
4.3.1 隔离 88
4.3.2 范围 88
4.3.3 定义函数 89
4.3.4 正向测试 91
4.3.5 负向测试 91
4.3.6 代码覆盖率 92
4.4 真实场景测试 92
4.4.1 依赖项 92
4.4.2 异步测试 95
4.5 运行客户端JavaScript单元测试 97
4.5.1 PhantomJS 97
4.5.2 Selenium 102
4.6 运行服务端JavaScript单元测试 109
4.6.1 Jasmine 110
4.7 小结 116
第5章 代码覆盖率 117
5.1 覆盖率基础理论 117
5.2 代码覆盖率数据 120
5.3 实际例子 121
5.3.1 转换instrumented文件 121
5.3.2 Instrumented文件剖析 122
5.4 练习/部署 123
5.4.1 客户端JavaScript 123
5.4.2 服务端JavaScript 125
5.5 持久化覆盖率信息 129
5.5.1 单元测试 129
5.5.2 集成测 130
5.6 生成输出 131
5.7 聚合 132
5.8 隐藏的文件 134
5.9 覆盖率目标 137
5.10 小结 138
第6章 集成测试、性能测试、负载测试 140
6.1 集成测试 140
6.1.1 Selenium 141
6.1.2 CasperJS 147
6.2 性能测试 150
6.2.1 生成HAR文件 150
6.2.2 查看HAR文件 156
6.2.3 浏览器性能测试 158
6.3 负载测试 160
6.3.1 浏览器负载测试 161
6.4 跟踪资源利用率 165
6.4.1 客户端跟踪 167
6.4.2 服务端跟踪 173
6.5 小结 176
第7章 调试 177
7.1 浏览器内调试 177
7.1.1 Firefox 179
7.1.2 Chrome 182
7.1.3 Safari 185
7.1.4 Internet Explorer 187
7.2 Node.js调试 187
7.3 远程调试 190
7.3.1 Chrome 191
7.3.2 PhantomJS 196
7.3.3 Firefox 197
7.4 移动调试 198
7.4.1 Android 4 198
7.4.2 iOS 6 200
7.4.3 Adobe Edge Inspect 202
7.4.4 其他方面的移动调试选择 205
7.5 生产环境调试 206
7.5.1 最小化代码 206
7.5.2 Source Map 207
7.6 小结 212
第8章 自动化 213
8.1 自动化什么内容 213
8.2 何时进行自动化 213
8.3 如何进行自动化 214
8.3.1 含有持续集成的自动化 214
8.3.2 开发环境自动化 215
8.3.3 构建环境自动化 225
8.3.4 部署 245
8.4 小结 246
《故事工坊》内容简介:本书通过工坊式写作课堂,对“讲故事”的技巧、方法、练习进行讲解,涉及虚构与非虚构类型的故事创作。写作
《碳中和时代:未来40年财富大转移》内容简介:碳中和代表一个新时代的开始,在这个时代中,所有人的财富都将通过碳排放这个媒介进
《2020年法律硕士联考重要法条释解》内容简介:本书主要内容为法律硕士联考法条类图书,针对法条涵盖的考点,分析和讲解,包含5科,
视频中的异常事件检测 本书特色 《视频中的异常事件检测》针对智能视频分析中的异常事件检测及其在视频安全认证领域的关键问题展开深入研究,旨在提高智能视频分析系统的...
《魔术就这么简单》内容简介:钱币魔术,顾名思义就是围绕钱币所做出的一连串魔术表演。在奥妙神奇、五彩缤纷的魔术世界里,钱币魔
方兴东,清华大学博士。1996年起开始涉足互联网领域,执著于中国互联网的推动,被《南方周末》冠为中国的“网络旗手”。1999年9月
《开国领袖毛泽东》内容简介:《开国领袖毛泽东》真实地再现了共和国开国奠基特定历史环境中领袖人物毛泽东的心路历程、行为轨迹和
PPT设计完全自学教程 本书特色 本书是初学者快速自学powerpoint的经典教程。全书共分为24章,从powerpoint快速入门开始讲起,以循序渐进的方式...
从Telsa到iPhone,从星巴克到无印良品,无论是塑造产品,还是打造品牌,设计似乎成为商业成功不可或缺的因素。然而,为什么绝大多
《Spring Boot 2实战之旅》内容简介:Spring Boot框架是目前微服务框架的最佳选择之一。本书采用Spring Boot 2.0.3版本讲解,从...
《C++面向对象程序设计》具备良好的编排体系,适合打算涉足编程领域的读者阅读,尤其适合大一学生。它最大的特色是Savitch教授最
《八仙的传说·吕洞宾的故事》内容简介:吕洞宾成仙后,闲来无事来到洛阳,看到了变成凡人的菩萨,还戏弄了菩萨。这下可好,任务来
《PHP编程(第4版)》内容简介:PHP是一种被广泛使用的Web编程语言,它简单易用,而且与时俱进,不断进化,提升性能。本书基于PHP
UI设计入门一本就够 本书特色 本书紧扣用户界面设计趋势,主要讲解了什么是UI设计,UI设计的原则与理念,UI的文字、图片和图标设计,网页UI设计,移动端UI设...
《传播学原来很有趣:16位大师的精华课》内容简介:本书围绕生活中经常出现的传播学现象,选取了16位享誉世界的传播学大师,把他们
《Web标准之道:博客园精华集》由博客园知名博主联手打造,涉及Web标准、HTML/CSS、JavaScript、SEO优化等诸多领域,内容新颖,观
《漫画诺贝尔科学家:化学奖》内容简介:诺贝尔奖通常被认为是世界上所有颁奖领域内最重要的奖项。诺贝尔奖将人类引向了科学和未来
《调阴阳就是养命》内容简介:一个人健康与否,有没有活力,都跟身体中的阴阳有着千丝万缕的关系。阴就是身体中具有流动性的一些物
Thisauthoritativetreatmentofthefundamentalsofmobilecommunicationsstressesthe"fun...
《波浪理论实战新解:股市波动原理与规律》内容简介:股市波动规律必须建立在具有说服力的股市波动原理之上,这是笔者写作此书不变