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
《人工智能时代:新兴媒介、产业与社会(第二辑)》内容简介:本书由上海交通大学媒体与传播学院、国际传播学会(ICA)共同主办,以
日本女生的制服变迁过程经历了近代社会制度、社会集团与阶级的整合,是女生对于“穿什么”这一问题的思索与尝试。“女生”这一社
《新编Word/Excel/PPT商务办公应用大全》内容简介:作为一款常用的集成办公软件,它具有操作方便和容易上手等特点。然而要想真正掌
内容简介:本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致
《Linux就该这么学》内容简介:本书基于最新的红帽RHEL系统编写,且内容通用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部
《刘彦斌的理财之道》内容简介:每个人的生活都离不开金钱。所谓管钱,就是理财。理财是一种生活技能,掌握好理财的技能,对于提高
《网页设计解析》不是一本普通的技法说明书,也不是一些拥有一些漂亮设计作品截图的高级画册。《网页设计解析》的写作出发点是希
ArcGIS基础实例教程 本书特色 《ArcGIS基础实例教程》介绍了ArcGIS的重要产品ArcGIS for Desktop的基本功能,具体包括数据显示与管...
自动控制理论基础 内容简介 《自动控制理论基础》深入浅出地阐述了自动控制的基本概念和基本理论。分析了开、闭环自动控制系统的主要特点和基本要求。详细讲解了控制系统...
《JavaScript修炼之道》是JavaScript的实战秘籍。作者将自己多年的编程经验融入其中,不仅可以作为学习之用,更是日常JavaScript
PythonAlgorithmsexplainsthePythonapproachtoalgorithmanalysisanddesign.WrittenbyM...
《快速写实:炭笔素描教程·唯美头像》内容简介:炭笔素描以上色速度快、不易反光、笔色浓黑、黑白灰层次易拉开、画面效果强烈且具
《打开爱的生命盒子》内容简介:超会讲故事的台湾心理专家赵梅如新作, 一本帮助摆脱“讨爱”勒索心理模式的治愈之书! 对爱的渴求
二级Visual Basic-全国计算机等级考试无纸化专用题库-(2013年9月考试专用)-(1CD) 本书特色 《虎奔教育·全国计算机等级考试无纸化专用题库:...
《裂变增长秘籍》内容简介:本书基于微信大生态,围绕裂变获客、留存促活、销售变现、客户管理四大模块展开讲述,旨在帮助更多互联
R图形化数据分析 本书特色 本书介绍如何使用图形化的方法来分析和理解复杂的数据,该方法突出数据中重要的关联和分布趋势,并使用尽可能简单的视觉元素来呈现尽可能丰富...
写这本书之前,作者一直在摸索一种最有利于入门者学编程的方法,并应用到教学当中。经过两年的教学实践,他确信他的方法是有效的
测量程序与新型全站仪的应用-(第2版)(含1DVD) 目录 前言第1章 具有矩阵运算功能的结构化程序设计语言Ture BASIC 2.031.1 概述1.2 T...
《零基础学C语言(第3版)》内容简介:单片机C51语言是目前最流行的单片机程序设计语言。本书由浅入深,循序渐进地讲解了C51语言的
《一朵云推动另一朵云》内容简介:成长,永远是一个人生命中最重要的功课。本书俞敏洪对教育的反思,也是俞敏洪的率真世界观。通过