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
广告语英国DK经典作品艺术排行榜冠军姊妹篇独特3D图立体图解析全球最标志建筑!主要卖点•世界建筑史上最著名的50余座全面解析•分
《新手学漫画教程:素描综合技法从入门到精通》内容简介:MiuMiu著的这本《素描综合技法从入门到精通》是针对初学者精心编制漫画素
人工智能与未来社会发展 内容简介 《人工智能与未来社会发展》一书不仅有对人工智能研究的高度凝练与汇总,以及对人工智能前沿发展的探讨,还用大量篇幅着重阐释了人工智...
《华杉讲透《资治通鉴》10》内容简介:《资治通鉴》从战国写到五代十国,生动展现了16个朝代1362年历史中一个个活生生的人和故事,
本书为21世纪高等学校规划教材。本书共有八章,主要介绍微机继电保护的基本构成原理和实现技术,包括数字信号滤波处理,微机保护
你知道如何通过量化网站的各类数据来制定相应的营销方案吗?你知道有些看似不可以量化的网站信息也是可以量化的吗?哪种市场营销
《人工神经网络导论》依照简明易懂、便于软件实现、鼓励探索的原则介绍人工神经网络。内容包括:智能系统描述模型,人工神经网络
《中国四库学(第7辑)》内容简介:《中国四库学》为湖南大学岳麓书院、中国四库学研究中心、古籍研究所主导的辑刊,每年两辑,旨在
影響各式設計完成度最重要的「標準字設計」(logotypedesign)中、歐、日標準字設計要領,一次掌握!--華文世界第一本字型MOOK
内容简介:随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(informationoverload)的时代。在这个时代,无
《亮剑.NET:SharePointServer2007开发实战》共分为8章,详细讲解了SharePoint上常见的开发任务,讲述了各种开发场景下需要了解的
《基础会计(第二版)》内容简介:本教材结合会计从业资格考试要求,以会计基本理论、核算方法为依托,以会计实务核心技能为主线,
Cisco 局域网交换基础 本书特色 随着网络流量、CPU处理速度、操作系统处理能力、网络密集应用的显著增加,LAN已经逐渐变得拥塞和不堪重负。对于彩网络和计算...
在线阅读本书Inthisinterdisciplinarydiscussiononmentalmodels,researchersfromvariousarea...
《中国水文化遗产考略》内容简介:本书是作者多年从事水文化遗产宣传教育研究的成果总结,全书分“水文化文物鉴赏”和“水文化文物
《人间草木:汪曾祺写北京》内容简介:本书主要收录了作者在北京时创作的作品。他墨写出了草木山川、花鸟虫鱼的人味,写出了乡情民
电子游戏中也存在“看不见的手”吗?玩虚拟游戏能够创造真实价值吗?为什么现实世界需要虚拟经济?经济学作为一门成熟的学科,起
算法设计,ISBN:9787302143352,作者:(美)克林伯格(Kleinberg,J.),()塔多斯(Tardos,E.)著,张立昂,屈婉玲译目录
《DirectX9.03D游戏开发编程基础》主要介绍如何使用DirectX9.0开发交互式3D图形程序,重点是游戏开发。全书首先介绍了必要的数学
《演化经济学与经济学的演进》内容简介:在生态经济学方面,本书从生态经济学学科基础和前沿应用方面对其学科进行了介绍和分析,从