编写可测试的JavaScript代码
基本信息
作者: [美] Mark Ethan Trostler 托斯勒 著
译者: 徐涛
出版社:人民邮电出版社
ISBN:9787115373373
上架时间:2015-1-24
出版日期:2015 年2月
开本:16开
页码:247
版次:1-1

 

内容简介
编写可测试的JavaScript代码
JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码。
本书的目标是教授如何为客户端和服务器编写和维护可测试的JavaScript代码。全书共8章。首先介绍了什么是可测试的代码,然后分别从代码复杂度、架构、单元测试、代码覆盖率、集成测试、性能测试、负载测试、调试和自动化等角度详细介绍。书中丰富的示例能够帮助读者从头开始养成好的代码编写习惯,提升测试效率及代码的可维护性。
本书的作者曾先后在YouTube、Yahoo!以及Google等公司从事前端开发及测试相关工作,具有丰富的经验。本书主要针对那些想成为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

编写可测试的JavaScript代码的更多相关文章

  1. 新书《编写可测试的JavaScript代码 》出版,感谢支持

    本书介绍 JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码.不管是创建新应用程序,还是重写遗留代码,本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代 ...

  2. [未读]编写可测试的JavaScript代码

  3. 使用 Promises 编写更优雅的 JavaScript 代码

    你可能已经无意中听说过 Promises,很多人都在讨论它,使用它,但你不知道为什么它们如此特别.难道你不能使用回调么?有什么了特别的?在本文中,我们一起来看看 Promises 是什么以及如何使用它 ...

  4. 编写可维护的JavaScript代码(部分)

    平时使用的时VS来进行代码的书写,VS会自动的将代码格式化,所有写了这么久的JS代码,也没有注意到这些点.看了<编写可维护的javascript代码>之后,做了些笔记. var resul ...

  5. 编写可维护的javascript代码---开篇(介绍自动报错的插件)

    文章开篇主要推荐了2款检测编程风格的工具: JSLint和JSHint: jsLint是由Douglas Crockford创建的.这是一个通用的javascript代码质量检测工具,最开始JSLin ...

  6. 如何编写高质量的Javascript代码

    1.避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好. a,使用命名空间 b,使用闭包 c,在函数内部使用var声明 2.编写可维护的代码 a.可读性 b.连续性 c.预见性 d.看起来是 ...

  7. 编写可维护的javascript代码--- 2015.11.22(注释)

    1.单行注释 // 这是一句单行注释 2.多行注释 /* 这里是代码 */     /*  这里都是注释 1232132  */      java的注释风格 /* * 另一段注释 * 这段注释包含2 ...

  8. 编写高质量的JavaScript代码(一)

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 2016年6月加入腾讯,目前在SNG社交网络质量部从事内部平台工具的研发.熟悉PHP.JS.CSS,喜欢弹吉他 ...

  9. 编写可维护的javascript代码--- 2015.11.21(基本格式化)

    1.1 每行的编码需要控制在80字符. 1.2 改用:的地方必须用上. 1.3 缩进用2个制表符,不过4个也可以. 1.4 当代码一行显示不全需要折行显示,这里我暂且假定缩进为4个字符. 1.5 如果 ...

随机推荐

  1. Android使用SAX解析XML(5)

    parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...

  2. Snippet: Fetching results after calling stored procedures using MySQL Connector/Python

    https://geert.vanderkelen.org/2014/results-after-procedure-call/ Problem Using MySQL Connector/Pytho ...

  3. dubbo管理控制台安装

    官网提供的下载路径好像不能用了,我也是在网上找的包,现在提供下载路径:http://pan.baidu.com/s/1nvPHQvZ 下载下来了,把他解压到wabapps->ROOT里面,先把t ...

  4. javaweb项目springmvc,和tomcat对静态文件的处理

    1.激活Tomcat的defaultServlet来处理静态文件,web.xml配置 <servlet-mapping> <servlet-name>default</s ...

  5. UVA 253 Cube painting

    大致题意:有三种颜色,一个立方体6面都可以涂一种颜色.现在给出两个每个面都涂好颜色的立方体,判断这两个立方体通过旋转是否相等. 立方体的旋转出来的结果有很多,首先可以0,1,2,3,4,5(顺序是:上 ...

  6. Python读写excel

    #-*- coding:utf-8 -*- #__author__ = 'liu-ke' import xlrd from xlutils.copy import copy mybook = xlrd ...

  7. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...

  8. web桌面程序之锁屏功能分析

    这是一个在操作系统里比较常见的功能,但在web里实现,有哪些需要注意的呢? 1.如何真正的实现锁屏? 2.如何避免通过技术手段绕过锁屏? 我个人总结出2点需要特别注意的地方,下面就分别进行分析. 第一 ...

  9. Smint – 用于单页网站制作的 jQuery 导航菜单插件

    Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...

  10. aBowman >>可以运用到自己博客上的小插件

    大家进入我的博客会发现页面右边有一只小狗这部分.这个就是我用在上面的 一个小插件.插件网址是:http://abowman.com/google-modules/,这上面有很多的小插件,可以直接运用到 ...