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
POWERPOINT2007宝典 本书特色 《PowerPoint 2007宝典》内容丰富,涵盖面广,适合各级别的PowerPoint用户使用。POWERPOI...
FoxPro 6.0项目案例导航(含光盘) 内容简介 本书分为两大部分。**部分可视化教程:以教学讲解的方式详细剖析应用系统各界面和主要环节的制作,读者将**部...
叶夫根尼·莫罗佐夫(EvgenyMorozov),科技互联网批评家,《新共和》杂志编辑,《纽约时报》、《金融时报》、《华尔街日报》、《
《Spring2企业应用开发》是一部权威的实战指南,由Spring开发团队撰写,全面讲述了Spring2企业应用开发。主要涵盖SpringFramewor
ANSYS Fluent 15.0流体计算从入门到精通-升级版-(含DVD光盘1张) 本书特色 fluent软件是目前国际上比较流行的商业cfd软件,只要涉及流...
本书通过分析9类质感表现的特点,向读者介绍了利用Illustrator进行绘画的技法。这9类质感包括传统美术作品质感、人体质感、动物质
《Scratch趣味创意编程》内容简介:本书以Scratch软件为平台载体,以学生喜爱的任务活动为形式,旨在培养学生的创新意识和实践能力
《近代宫廷戏曲档案文献研究》内容简介:京剧是中国传统文化之一,流播全国,影响甚广,有“国剧”之称,是中华民族传统文化的重要
Youdontneedprogrammingexperiencetoaddinteractiveandvisualeffectstoyourwebpageswi...
《太极拳延缓认知衰退研究:基于脑科学》内容简介:本书旨在揭示太极拳锻炼对改善老年人认知功能的影响及其作用机制。全书内容分三
中文版AutoCAD 2004二次开发标准教程 内容简介 长期以来,广大工程人员一直热切期盼有一本易学易用的AutoLISP程序开发图书,以便学习、使用Auto...
《多尔衮:一指通天》内容简介:爱新觉罗·多尔衮是努尔哈赤的第14个儿子,他的母亲是努尔哈赤最喜欢的一个妃子。多尔衮的一生,是
《小学生必背文言文》内容简介:本书包含小学统编语文教材中的短篇文言文和扩展的适合小学生阅读的文言文篇目,一共80篇,文言文来
Wanttoaddmoreinteractivityandpolishtoyourwebsites?DiscoverhowjQuerycanhelpyoubui...
《别让不好意思害了你》内容简介:拒绝,是一种基本的生存能力,不要成全了别人,委屈了自己。生活中,我们常常面临诸多为难场合,
WhenitcomestoWebdesign,styleguidesareoftentooboringandpredictabletocapturetheatt...
《Web自动化测试与Selenium 3.0从入门到实践》内容简介:本书由浅入深,结合大量实际案例,重点讲解Selenium WebDriver在企业中的应
Ifyouwanttolearnhowtobuildthingswithelectronics,getaholdofthishands-onbook.Witht...
《看图自学吉他》内容简介:这是一本吉他基础教程,主要针对吉他初学者。在基础知识部分从最基本的吉他调弦、琴弦安装、吉他选购、
《超越CSS:Web设计艺术精髓(修订版)》系统、深入地阐释了网站的设计与实现,帮助读者从设计的角度来使用CSS以达到完美的效果。作