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
《JavaWeb开发实战宝典》从初学者的角度出发,通过通俗易懂的语言、丰富实用的实例,详细介绍了使用Java语言和开源框架进行Web程
CADCAMCAE工程应用丛书ANSYS Fluent流体计算从入门到精通(2020版) 本书特色 适读人群 :适合广大Fluent初、中级读者学习使用;也可作...
《ROS机器人编程实践》内容简介:ROS工程师经常面临使用机器人操作系统(ROS)基础设施并将物理机器人连接到机器人仿真系统的挑战。
《理性的设计感性的空间:法国DBLANT都林国际设计》贯穿了30余篇设计师的文章,对设计机构的发展模式、设计项目的管理及设计过程中
《上班族最爱读的心理呵护书》内容简介:在现代社会中,上班族是一个非常重要的群体,在自己的岗位上默默地耕耘。然而,他们在为社
Writtenbytheauthorofthebest-selling"HyperText&HyperMedia",thisbookisanexcellentg...
《PWA实战:面向下一代的Progressive Web APP》内容简介:Progressive Web App(PWA)是由谷歌提出的一整套技术解决方案,它...
《Go Web编程》内容简介:《Go Web编程》介绍如何使用Go语言编写Web,包含了Go语言的入门、Web相关的一些知识、Go中如何处理Web的各
本书由上、下两篇组成。上篇为UNIX版本6的源代码,下篇是莱昂先生对UNIX操作系统版本6源代码的详细分析。本书语言简洁、透彻,曾
《世界著名计算机教材精选:计算机图形学与几何造型导论》是世界著名计算机教材精选之一。《世界著名计算机教材精选:计算机图形学
本书是著名的操作系统内核专家MarkRussinovich和DavidSolomon撰写的Windows操作系统原理的最新版著作,全面和深入地阐述了Window
《转型:工业4.0时代的按需印刷》内容简介:当前,全球制造业正加速进入数字化、智能化时代,在这样波澜壮阔的大背景下,积极转型,
《有趣的语文》内容简介:时下,语文教学是最容易收到针砭的学科,语文老师也经常遭人质疑。但在中小学语文教学一线,又确实有一批
《花间集》内容简介:作为中国第一部词集,本书也是中国文学史上的里程碑作品。词集中,收录了温庭筠、韦庄等18位花间词派诗人的50
《Unity 5.X 3D游戏开发技术详解与典型案例》内容简介:本书对Unity3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细
Ourworldisbeingrevolutionizedbydata-drivenmethods:accesstolargeamountsofdatahasg...
本书从系统观的角度深入探讨可持续问题、框架和策略。全书共5部分19章,分别从降低、重复使用、循环利用、恢复和过程五大方面介绍
《互联网金融弄潮儿——第三方支付》内容简介:本书从市场的角度,通过认真的调查与分析,以实际案例为导向,由浅入深,分板块串联
DOS/BIOS注册表/组策略技术手册 本书特色 做电脑的主人,成为人人羡慕的电脑高手!超值的内容:dos命令的精彩应用——探索windows界面下的秘密,bi...
本书是一本总结实践经验和成果的作品,主要为测试人员规划、设计、实施Web性能测试而编写。本书既包含Web性能测试的基础理论,又