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
如何能牢牢地黏住老用户、吸引新用户、读懂用户的偏好兴趣和喜怒哀乐,这都是对企业发展至关重要甚至关乎生死存亡的问题,解决这
《到了南半球,一切都变了》内容简介:2012年3月,我获得新西兰打工旅行签证,每年中国大陆只有1000个名额,而我是幸运儿之一。201
《JSP+DreamweaverCS4+CSS+Ajax动态网站开发典型案例》介绍了综合应用DreamweaverCS4、JSP以及Ajax技术进行动态网页设计...
《这里是杭州·美食》内容简介:作为一座有着深厚底蕴的历史文化名城,杭州拥有独特的人文和自然环境。“这里是杭州”系列以文化寻
《颠覆式学习》内容简介:人工智能的进步咄咄逼人,似乎在不远的未来将让我们中的许多人失业。但我们当然不想坐以待毙,而且我们还
#NAME?
《CSSWeb站点设计手册》针对初、中级读者,特别是针对入门级读者。书中包含了经过精心筛选的学习CSS必须要了解和掌握的所有内容。
《结构化写作》内容简介:本书核心内容包括导论、基础篇、方法篇。其中,导论部分主要强调职场写作技能的必要性和重要性,并解释何
《萌物绘:实用水彩手绘入门教程》内容简介:本书分为四大部分:工具篇、色彩篇、基础篇、实践篇。以甜品、花卉、动物三大萌物主题
《看得懂的金融投资课》内容简介:什么是货币?什么是金融?你要怎么做才能获得更高的、更稳健的投资收益,更好地分析投资的风险,
《偶然中的必然:概率的故事》内容简介:本书故事的引人入胜与数学原理的巧妙结合,会产生一种奇特的反应,让读者在故事的流连忘返
微型计算机原理与接口技术学习指导--习题解答及实验 内容简介 本书分为两部分,**部分是针对主教材各章的大纲要求、重点内容与考核要求、习题分析与解答;第二部分是...
《设计模式之禅》内容简介:全书共分为四部分,第一部分从原理的角度阐述了面向对象程序设计的6大原则;第二部生动地讲解和剖析了2
PDA软件市场不但巨大,而且持续成长。五年之内,全世界将有大量人口使用精明时髦,可上网的移动电话。每个家庭都有一台PC?!或许
计算机网络 本书特色 《计算机网络(普通高等教育计算机类特色专业系列规划教材)》(作者程莉、刘建毅、王枞)具有三个特点:**,知识结构完整,综合iso/...
本书结合理论知识和实例程序,全面而系统地介绍了Objective-C编程的相关内容,包括类和继承、对象的类型和动态绑定、基于引用计数
《无价》内容简介:为什么百老汇剧场里价格越高的位置卖得越火?为什么100万美元带来的愉悦感,400万美元才能让它翻倍?为什么议价
Learntobuilddynamic,interactivewebapplicationsusingthetwomostimportantapproaches...
《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的
《礼义之邦》内容简介:礼仪是礼的形式,礼义则是礼的本质。所有礼仪活动或者礼仪程序的背后,都蕴含有特定的道德认同、价值导向、