编写可测试的JavaScript代码
Mark Ethan Trostler
徐涛 译
出版时间:2015年01月
页数:247
“ …一本丰富且全面的JavaScript书籍。强烈推荐给每一位想要学习JavaScript的开发人员。”
——Shelley Powers, JavaScript Cookbook作者

JavaScript专业开发人员必须具备的技能之一是编写可测试的代码。不管是创建新应用程序,还是重写遗留代码,本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代码。
从减少代码复杂性的方法,到单元测试、代码覆盖率、调试以及自动化,你将全面学到如何编写出让自己和同事能够轻松修复和维护的JavaScript代码。测试JavaScript代码是一个复杂的过程。本书将在很大程度上帮你简化该过程。

· 整体了解敏捷、测试驱动开发、行为驱动开发;
· 使用静态语言模式和JavaScript标准减少代码复杂性;
· 学习基于事件的架构优势,包括模块化、松耦合、可重用性;
· 在功能和应用程序层面上探索用于编写和运行单元测试的相关工具;
· 生成代码覆盖率,衡量测试范围和测试有效性;
· 使用Selenium或CasperJS进行集成测试、性能测试、负载测试;
· 使用浏览器内置工具、Node.js、移动、生产环境调试;
· 理解什么是自动化开发,何时以及如何进行自动化开发。
  1. 第1章 可测试的JavaScript
  2. 1.1 现有技术
  3. 1.1.1 敏捷开发
  4. 1.1.2 测试驱动开发
  5. 1.1.3 行为驱动开发
  6. 1.1.4 哪种方式最好?
  7. 1.2 代码是让人用的
  8. 1.2.1 为何要编写可测试的代码
  9. 1.2.2 什么是可测试的代码
  10. 1.2.3 如何编写可测试的代码
  11. 1.3 卓越的应用程序代码
  12. 1.3.1 测试
  13. 1.3.2 调试
  14. 1.4 小结
  15. 第2章 复杂度
  16. 2.1 代码大小
  17. 2.2 JSLint
  18. 2.3 圈复杂度
  19. 2.4 重用
  20. 2.5 扇出
  21. 2.6 扇入
  22. 2.7 耦合
  23. 2.7.1 内容耦合
  24. 2.7.2 公共耦合
  25. 2.7.3 控制耦合
  26. 2.7.4 印记耦合
  27. 2.7.5 数据耦合
  28. 2.7.6 无耦合
  29. 2.7.7 实例化
  30. 2.8 耦合性度量
  31. 2.9 现实中的耦合
  32. 2.9.1 测试耦合代码
  33. 2.10 依赖注入
  34. 2.11 注释
  35. 2.11.1 YUIDoc
  36. 2.11.2 JSDoc
  37. 2.11.3 Docco/Rocco
  38. 2.12 人工测试
  39. 2.13 小结
  40. 第3章 基于事件的架构
  41. 3.1 基于事件编程的好处
  42. 3.2 事件集线器
  43. 3.2.1 使用事件集线器
  44. 3.2.2 事件的响应
  45. 3.2.3 基于事件的架构与MVC架构
  46. 3.2.4 基于事件的架构与面向对象编程
  47. 3.2.5 基于事件的架构与软件即服务
  48. 3.3 Web应用程序
  49. 3.4 测试基于事件的架构
  50. 3.5 基于事件架构的说明
  51. 3.5.1 可伸缩性
  52. 3.5.2 广播
  53. 3.5.3 运行时检测
  54. 3.5.4 安全性
  55. 3.5.5 状态
  56. 3.6 更智能的集线器:事件交换机
  57. 3.6.1 部署
  58. 3.6.2 一种实现
  59. 3.6.3 会话
  60. 3.6.4 可扩展性
  61. 3.7 小结
  62. 第4章 单元测试
  63. 4.1 单元测试框架
  64. 4.2 开始编写测试
  65. 4.3 编写好的单元测试
  66. 4.3.1 隔离
  67. 4.3.2 范围
  68. 4.3.3 定义函数
  69. 4.3.4 正向测试
  70. 4.3.5 负向测试
  71. 4.3.6 代码覆盖率
  72. 4.4 真实场景测试
  73. 4.4.1 依赖项
  74. 4.4.2 异步测试
  75. 4.5 运行客户端JavaScript单元测试
  76. 4.5.1 PhantomJS
  77. 4.5.2 Selenium
  78. 4.6 运行服务端JavaScript单元测试
  79. 4.6.1 Jasmine
  80. 4.7 小结
  81. 第5章 代码覆盖率
  82. 5.1 覆盖率基础理论
  83. 5.2 代码覆盖率数据
  84. 5.3 实际例子
  85. 5.3.1 转换instrumented文件
  86. 5.3.2 Instrumented文件剖析
  87. 5.4 练习/部署
  88. 5.4.1 客户端JavaScript
  89. 5.4.2 服务端JavaScript
  90. 5.5 持久化覆盖率信息
  91. 5.5.1 单元测试
  92. 5.5.2 集成测
  93. 5.6 生成输出
  94. 5.7 聚合
  95. 5.8 隐藏的文件
  96. 5.9 覆盖率目标
  97. 5.10 小结
  98. 第6章 集成测试、性能测试、负载测试
  99. 6.1 集成测试
  100. 6.1.1 Selenium
  101. 6.1.2 CasperJS
  102. 6.2 性能测试
  103. 6.2.1 生成HAR文件
  104. 6.2.2 查看HAR文件
  105. 6.2.3 浏览器性能测试
  106. 6.3 负载测试
  107. 6.3.1 浏览器负载测试
  108. 6.4 跟踪资源利用率
  109. 6.4.1 客户端跟踪
  110. 6.4.2 服务端跟踪
  111. 6.5 小结
  112. 第7章 调试
  113. 7.1 浏览器内调试
  114. 7.1.1 Firefox
  115. 7.1.2 Chrome
  116. 7.1.3 Safari
  117. 7.1.4 Internet Explorer
  118. 7.2 Node.js调试
  119. 7.3 远程调试
  120. 7.3.1 Chrome
  121. 7.3.2 PhantomJS
  122. 7.3.3 Firefox
  123. 7.4 移动调试
  124. 7.4.1 Android 4
  125. 7.4.2 iOS 6
  126. 7.4.3 Adobe Edge Inspect
  127. 7.4.4 其他方面的移动调试选择
  128. 7.5 生产环境调试
  129. 7.5.1 最小化代码
  130. 7.5.2 Source Map
  131. 7.6 小结
  132. 第8章 自动化
  133. 8.1 自动化什么内容
  134. 8.2 何时进行自动化
  135. 8.3 如何进行自动化
  136. 8.3.1 含有持续集成的自动化
  137. 8.3.2 开发环境自动化
  138. 8.3.3 构建环境自动化
  139. 8.3.4 部署
  140. 8.4 小结
书名:编写可测试的JavaScript代码
作者:Mark Ethan Trostler
译者:徐涛 译
国内出版社:人民邮电出版社
出版时间:2015年01月
页数:247
书号:978-7-115-37337-3
原版书书名:Testable JavaScript
原版书出版商:O'Reilly Media
Mark Ethan Trostler
 
Mark Ethan Trostler,谷歌Ads团队的软件测试工程师,超过20年的编码和测试经验,曾就职于创业公司IPivot、
高通、英特尔、Redback Networks、Juniper Networks、 Yahoo。他是开源项目JavaScript Unit Testing Environment的作者(https://github.com/zzo/JUTE)。