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
《计算机软件技术基础(第3版)》是计算机基础教材,全书较系统、通俗地介绍了计算机软件的技术基础知识和常用的系统软件。内容包
《硬件安全攻防大揭秘》内容简介:本书是一本硬件安全攻防方面的综合性书籍。前三章介绍了硬件安全研究的基本概念、常用的设备工具
《经典之重写与重探:晚清民国词论集》内容简介:本书分为上下两编,各三篇文章。上编主要讨论晚清民国间词人在创作方面对唐宋词经
《黑客与安全技术指南》内容简介:这是一本专门介绍并分享黑客与安全技术的入门书,内容从基础知识出发,通过相关实例为读者剖析计
“法国文化电台”记者R·舍普就目前法国社会较为关心的,关于科技对社会的影响的问题,采访了法国学界的一些人士。采访笔录形成了
全书分三篇。一、绪论篇。第一章谈火药出现前中外火攻中使用的古代纵火剂和纵火武器。第二章论有关火药的一般概念,包括火药的定
《商品美工实训》内容简介:《商品美工实训》是一本岗位项目实训教材,本书根据电子商务公司美工部门的岗位设置和技能要求整合课程
Challengingthepopularmythofapresent-dayinformationrevolution,MediaTechnologyandS...
ThispracticalbookintroducessystemsprogrammerstoRust,thenewandcutting-edgelanguag...
《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK1.4和1.5(现在已命名为J2SE5)中所做的所有修改和增补。
《人间值得一回游》内容简介:任凭心中涌起孤独万种,观照尘世依然欢喜如初。散文大家刘白羽一生写出了大量具有深刻思想内涵和独特
本书从系统观的角度深入探讨可持续问题、框架和策略。全书共5部分19章,分别从降低、重复使用、循环利用、恢复和过程五大方面介绍
《战略执行力》内容简介:三分战略,七分执行。无论组织决策有多好、思路如何清晰,如果不能付诸实践,不执行到位,一切都会成为纸
《姐妹》内容简介:《姐妹》是朱墨创作的长篇小说。陶姜、陶然是一对姐妹,两人相差八岁,性格迥异。父母离婚那年,她们的人生埋下
Anyonewhoreadsisboundtowonder,atleastoccasionally,abouthowthosefunnysquigglesona...
《生活书店会议记录:1940—1945(精)》内容简介:本册收入了生活书店第六届理事会会议记录,第六届人事委员会会议记录,第六届理
《菊与刀(译林人文精选)》内容简介:《菊与刀》是本尼迪克特于二战后受命于美国政府,为分析、研究日本社会和日本民族性所作的调
《八万里路云和月》内容简介:全书共分为三篇。上篇“通榆‘触网’之路”,作者以半自传的形式回顾了通榆电商品牌成长历程。从零开
Photoshop CC自学魔法书-(附光盘) 本书特色 《Photoshop CC自学魔法书》为Photoshop初学者量身打造,是入门级读者快速、全面掌握P...
《匠人》内容简介:☆十五位匠人的生命故事,一个正在消失的村落,见证百年中国的变迁 ☆每个漂泊在城市里的人,都将在其中找到自己