《测试驱动的JavaScript开发》PPT资料

《测试驱动的JavaScript开发》PPT资料

  • 大小:6.4 MB
  • 类型:JavaScript
  • 格式:PDF
  • 出版:机械工业出版社
  • 作者:(美)Christian、Johansen
  • 更新:2022-08-10 10:32:05
vip 立即下载( 6.4 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 徐安福 投稿)

为找资料的网友们整理了JavaScript类书籍配套资源,介绍了关于JavaScript开发、JavaScript、JavaScript方面的内容,本书是由机械工业出版社出版,已被779人关注,由杜建业测试纠错,目前本书在JavaScript类综合评分为:9.2分。

JavaScript资源推荐

资源介绍

本书是一本完整的、基于最佳实践的JavaScript敏捷测试指南,同时又有着测试驱动开发方法(TDD)所带来的质量保证。领先一步的JavaScript敏捷开发者Christian Johansen的讨论涵盖了将最先进的自动化测试用于JavaScript开发环境的方方面面,带领读者走查整个开发的生命周期,从项目启动到应用程序部署。本书的主要内容包括:掌握自动化测试和TDD;构建有效的自动化测试工作流;测试浏览器和服务器两端的代码(使用Node.js)、运用TDD构建更加干净的API、更加模块化的代码以及更健壮的软件;编写可测试的代码;使用测试桩和模拟对象,将各个单元单独进行测试;通过重构持续进改代码;走查全功能软件的创建和自动化测试。

封面图

目录

  • 译者序
  • 前言
  • 致谢
  • 关于作者
  • 第一部分测试驱动开发
  • 第1章 自动化测试1
  • 1.1 单元测试1
  • 1.1.1 单元测试框架2
  • 1.1.2 JavaScript日期函数strftime2
  • 1.2 断言5
  • 1.3 测试函数、用例和套件7
  • 1.4 集成测试10
  • 1.5 单元测试的好处12
  • 1.5.1 回归测试12
  • 1.5.2 重构12
  • 1.5.3 跨浏览器的测试13
  • 1.5.4 其他的一些好处13
  • 1.6 单元测试中的陷阱13
  • 1.7 小结13
  • 第2章 测试驱动开发的过程15
  • 2.1 测试驱动开发的目的与目标15
  • 2.1.1 开发顺序的颠倒15
  • 2.1.2 测试驱动开发中的设计15
  • 2.2 过程16
  • 2.2.1 步骤1:编写一个测试17
  • 2.2.2 步骤2:观看测试失败17
  • 2.2.3 步骤3:使测试通过18
  • 2.2.4 步骤4:重构以消除冗余20
  • 2.2.5 打肥皂、冲洗、重复20
  • 2.3 让测试驱动开发简便易行21
  • 2.4 测试驱动开发的好处21
  • 2.4.1 有效的代码21
  • 2.4.2 遵循单一职责原则22
  • 2.4.3 强制有意识的开发22
  • 2.4.4 提高生产效率22
  • 2.5 小结22
  • 第3章 行业工具23
  • 3.1 xUnit测试框架23
  • 3.1.1 行为驱动开发23
  • 3.1.2 持续集成23
  • 3.1.3 异步测试24
  • 3.1.4 xUnit测试框架的特点24
  • 3.1.5 断言25
  • 3.1.6 依赖关系25
  • 3.2 浏览器内的测试框架26
  • 3.2.1 YUI Test26
  • 3.2.2 其他浏览器内的测试框架28
  • 3.3 无头测试框架29
  • 3.3.1 交叉检查29
  • 3.3.2 Rhino与env.js29
  • 3.3.3 无头测试框架的缺点30
  • 3.4 一个掌管一切的测试运行器30
  • 3.4.1 JsTestDriver是怎样工作的30
  • 3.4.2 JsTestDriver的缺点31
  • 3.4.3 安装31
  • 3.4.4 在IDE里使用JsTestDriver35
  • 3.4.5 提高命令行效率36
  • 3.4.6 断言37
  • 3.5 小结38
  • 第4章 从测试中学习39
  • 4.1 用单元测试探索JavaScript39
  • 4.1.1 观察法编程的缺陷41
  • 4.1.2 学习测试的最佳点41
  • 4.2 性能测试42
  • 4.2.1 基准和相对性能43
  • 4.2.2 性能评测和定位瓶颈50
  • 4.3 小结51
  • 第二部分开发人员的JavaScript
  • 第5章 函数53
  • 5.1 定义函数53
  • 5.1.1 函数声明53
  • 5.1.2 函数表达式54
  • 5.1.3 Function构造器55
  • 5.2 调用函数56
  • 5.2.1 arguments对象56
  • 5.2.2 形参和arguments57
  • 5.3 作用域和执行上下文58
  • 5.3.1 执行上下文59
  • 5.3.2 变量对象59
  • 5.3.3 活动对象60
  • 5.3.4 全局对象60
  • 5.3.5 作用域链61
  • 5.3.6 再访函数表达式62
  • 5.4 this关键字64
  • 5.4.1 隐式地设置this65
  • 5.4.2 显式地设置this65
  • 5.4.3 使用原初类型当做this66
  • 5.5 小结67
  • 第6章 函数和闭包的应用68
  • 6.1 绑定函数68
  • 6.1.1 this被丢弃:一个Lightbox的例子68
  • 6.1.2 通过一个匿名函数解决this问题69
  • 6.1.3 Function.prototype.bind70
  • 6.1.4 绑定参数71
  • 6.1.5 局部套用73
  • 6.2 被立即调用的匿名函数74
  • 6.2.1 Ad Hoc作用域74
  • 6.2.2 命名空间76
  • 6.3 状态函数79
  • 6.3.1 生成唯一的标识符79
  • 6.3.2 迭代器81
  • 6.4 记忆84
  • 6.5 小结86
  • 第7章 对象和原型继承87
  • 7.1 对象和属性87
  • 7.1.1 属性访问88
  • 7.1.2 原型链89
  • 7.1.3 通过原型链实现对象扩展90
  • 7.1.4 可枚举属性91
  • 7.1.5 属性的特性94
  • 7.2 使用构造器创建对象98
  • 7.2.1 prototype和[[Prototype]]98
  • 7.2.2 使用new创建对象98
  • 7.2.3 构造器原型99
  • 7.2.4 构造器的问题102
  • 7.3 伪经典结构的继承103
  • 7.3.1 继承函数104
  • 7.3.2 访问[[Prototype]]105
  • 7.3.3 实现super105
  • 7.4 封装和信息隐藏110
  • 7.4.1 私有方法110
  • 7.4.2 私有成员和特权方法112
  • 7.4.3 函数式继承113
  • 7.5 对象组合和混搭体115
  • 7.5.1 Object.create方法115
  • 7.5.2 tddjs.extend方法117
  • 7.5.3 混搭体120
  • 7.6 小结121
  • 第8章 ECMAScript 5122
  • 8.1 JavaScript不远的未来122
  • 8.2 对象模型的更新123
  • 8.2.1 属性的特性123
  • 8.2.2 原型继承125
  • 8.2.3 Getter和Setter127
  • 8.2.4 使用属性的特性128
  • 8.2.5 作为属性标识符的保留关键字131
  • 8.3 严格模式131
  • 8.3.1 启用严格模式131
  • 8.3.2 严格模式带来的改变132
  • 8.4 各种新内容及改进134
  • 8.4.1 原生的JSON134
  • 8.4.2 Function.prototype.bind135
  • 8.4.3 关于数组135
  • 8.5 小结135
  • 第9章 不唐突的JavaScript137
  • 9.1 不唐突的JavaScript的目标137
  • 9.2 不唐突的JavaScript的规则138
  • 9.2.1 唐突的标签式面板138
  • 9.2.2 简洁的标签式面板标记140
  • 9.2.3 TDD和渐进增强141
  • 9.3 不要做任何假设141
  • 9.3.1 不要假设只有你一个人141
  • 9.3.2 不要假设标记是正确的142
  • 9.3.3 不要假设所有用户的需求都一样142
  • 9.3.4 不要假设支持142
  • 9.4 规则何时适用143
  • 9.5 不唐突的标签式面板的例子143
  • 9.5.1 建立测试143
  • 9.5.2 tabController对象145
  • 9.5.3 activateTab方法147
  • 9.5.4 使用标签控制器149
  • 9.6 小结152
  • 第10章 特性检测154
  • 10.1 浏览器嗅探154
  • 10.1.1 用户代理嗅探154
  • 10.1.2 对象检测155
  • 10.1.3 浏览器嗅探的状态156
  • 10.2 正确使用对象检测156
  • 10.2.1 检查对象是否存在156
  • 10.2.2 类型检查157
  • 10.2.3 原生和宿主对象157
  • 10.2.4 使用测试样例160
  • 10.2.5 何时测试161
  • 10.3 特性检测DOM事件161
  • 10.4 特性检测CSS属性163
  • 10.5 跨浏览器事件处理例程164
  • 10.6 使用特性检测167
  • 10.6.1 向前进167
  • 10.6.2 无法检测到的特性167
  • 10.7 小结168
  • 第三部分JavaScript测试
  • 驱动开发实践
  • 第11章 观察者模式169
  • 11.1 JavaScript中的观察者169
  • 11.1.1 观察物库170
  • 11.1.2 设置环境170
  • 11.2 添加观察者171
  • 11.2.1 第一个测试171
  • 11.2.2 重构173
  • 11.3 检查观察者174
  • 11.3.1 测试175
  • 11.3.2 重构177
  • 11.4 通知观察者177
  • 11.4.1 确保观察者被调用177
  • 11.4.2 传递参数178
  • 11.5 错误处理179
  • 11.5.1 添加假的观察者179
  • 11.5.2 有问题的观察者180
  • 11.5.3 记录调用顺序181
  • 11.6 观察任意对象182
  • 11.6.1 让构造器成为过去式183
  • 11.6.2 用对象来替换构造器185
  • 11.6.3 重命名方法186
  • 11.7 观察任意事件187
  • 11.7.1 支持observe中的事件187
  • 11.7.2 支持notify中的事件188
  • 11.8 小结191
  • 第12章 抽象化浏览器区别:Ajax192
  • 12.1 以测试驱动来开发一个请求API192
  • 12.1.1 发现浏览器的不一致192
  • 12.1.2 开发策略192
  • 12.1.3 目标193
  • 12.2 实现请求接口193
  • 12.2.1 项目布局193
  • 12.2.2 选择接口风格194
  • 12.3 创建一个XMLHttpRequest对象194
  • 12.3.1 第一个测试194
  • 12.3.2 XMLHttpRequest背景知识195
  • 12.3.3 实现tddjs.ajax.create196
  • 12.3.4 更强的特性检测197
  • 12.4 编写Get请求198
  • 12.4.1 需要一个URL198
  • 12.4.2 为XMLHttpRequest对象
  • 创建桩199
  • 12.4.3 处理状态的变化205
  • 12.4.4 处理状态变化206
  • 12.5 使用Ajax API209
  • 12.5.1 集成测试210
  • 12.5.2 测试结果211
  • 12.5.3 微妙的麻烦212
  • 12.5.4 本地请求213
  • 12.5.5 测试状态214
  • 12.6 发出POST请求217
  • 12.6.1 为POST做准备217
  • 12.6.2 发送数据220
  • 12.6.3 设置请求头信息225
  • 12.7 重审请求API225
  • 12.8 小结229
  • 第13章 使用Ajax和Comet将数据流式化230
  • 13.1 数据轮询230
  • 13.1.1 项目结构230
  • 13.1.2 轮询器:tddjs.ajax.poller231
  • 13.1.3 定时器测试238
  • 13.1.4 可配置的头和回调242
  • 13.1.5 单行接口245
  • 13.2 Comet247
  • 13.2.1 永不消失的框架247
  • 13.2.2 流式化XMLHttpRequest248
  • 13.2.3 HTML5248
  • 13.3 长轮询的XMLHttpRequest248
  • 13.3.1 实现长轮询支持248
  • 13.3.2 避免缓存问题251
  • 13.3.3 特性检测252
  • 13.4 Comet客户端252
  • 13.4.1 消息格式253
  • 13.4.2 介绍ajax.cometClient254
  • 13.4.3 分发数据255
  • 13.4.4 添加观察者258
  • 13.4.5 服务器连接259
  • 13.4.6 跟踪请求和接收到的数据264
  • 13.4.7 发布数据267
  • 13.4.8 特性检测267
  • 13.5 小结267
  • 第14章 基于Node.js的服务器端
  • JavaScript269
  • 14.1 Node.js运行时环境269
  • 14.1.1 环境设置269
  • 14.1.2 起点271
  • 14.2 控制器272
  • 14.2.1 CommonJS规则模块272
  • 14.2.2 定义模块:首测272
  • 14.2.3 建立控制器273
  • 14.2.4 基于POST方式添加消息274
  • 14.2.5 对请求做出响应280
  • 14.2.6 将应用程序用于实践281
  • 14.3 域模型和存储器283
  • 14.3.1 创建聊天室283
  • 14.3.2 Node中的输入输出283
  • 14.3.3 添加聊天信息283
  • 14.3.4 获取聊天信息287
  • 14.4 Promises290
  • 14.4.1 用promise重构addMessage方法291
  • 14.4.2 使用promise对象294
  • 14.5 事件产生器295
  • 14.5.1 让chatRoom对象成为一个事件
  • 产生器295
  • 14.5.2 等待聊天信息297
  • 14.6 回到控制器300
  • 14.6.1 完成Post方法300
  • 14.6.2 通过GET方法输出数据流302
  • 14.6.3 响应头和响应体307
  • 14.7 小结308
  • 第15章 TDD与DOM操作:聊天室客户
  • 端程序309
  • 15.1 客户端的蓝图309
  • 15.1.1 目录结构309
  • 15.1.2 选择方法310
  • 15.2 用户表单311
  • 15.2.1 视图的设置311
  • 15.2.2 处理提交事件316
  • 15.2.3 特征测试324
  • 15.3 用Node.js后端使用客户端325
  • 15.4 聊天信息列表327
  • 15.4.1 设置模型327
  • 15.4.2 设置视图330
  • 15.4.3 添加聊天信息331
  • 15.4.4 来自同一用户的重复内容334
  • 15.4.5 特征测试335
  • 15.4.6 动手实验335
  • 15.5 聊天信息表单336
  • 15.5.1 建立测试用例337
  • 15.5.2 设置视图337
  • 15.5.3 发布聊天信息339
  • 15.5.4 特征测试342
  • 15.6 聊天室客户端的最终版本343
  • 15.6.1 收尾工作344
  • 15.6.2 部署时的注意事项346
  • 15.7 小结347
  • 第四部分测试模式
  • 第16章 模拟对象和创建桩349
  • 16.1 测试替身概述349
  • 16.1.1 特技替身349
  • 16.1.2 假对象350
  • 16.1.3 哑对象350
  • 16.2 测试验证351
  • 16.2.1 状态验证351
  • 16.2.2 行为验证351
  • 16.2.3 验证策略的作用352
  • 16.3 桩352
  • 16.3.1 使用桩来避免不方便的接口352
  • 16.3.2 使用桩让系统通过特定代码路径353
  • 16.3.3 使用桩来制造麻烦353
  • 16.4 测试间谍354
  • 16.4.1 测试间接输入354
  • 16.4.2 检测调用细节355
  • 16.5 使用桩库355
  • 16.5.1 创建桩函数355
  • 16.5.2 给方法创建桩356
  • 16.5.3 内建行为验证358
  • 16.5.4 创建桩和Node.js359
  • 16.6 模拟对象360
  • 16.6.1 恢复被模拟的函数360
  • 16.6.2 匿名的模拟对象361
  • 16.6.3 多重期望361
  • 16.6.4 对this值的期望362
  • 16.7 模拟对象还是桩363
  • 16.8 小结364
  • 第17章 编写良好的单元测试365
  • 17.1 提高可读性365
  • 17.1.1 清楚地命名测试以表明意图365
  • 17.1.2 用设置、应用和验证块对测试
  • 进行结构化367
  • 17.1.3 使用更高级的抽象保持测试的
  • 简单性367
  • 17.1.4 减少重复,而不是减少明确性369
  • 17.2 将测试作为行为规范370
  • 17.2.1 一次只测试一种行为370
  • 17.2.2 每个行为只测试一次371
  • 17.2.3 在测试中隔离行为371
  • 17.3 与测试中的缺陷做斗争373
  • 17.3.1 在测试通过之前运行它们373
  • 17.3.2 首先编写测试374
  • 17.3.3 搅乱和破坏代码374
  • 17.3.4 使用JsLint374
  • 17.4 小结375
  • 参考文献376

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

JavaScript相关资源

  • 零基础学Javascript

    零基础学Javascript

    内容简介 《零基础学JavaScript》将这两者结合在一起,介绍了如何使用VisualBasic和sQLServeI开发数据管理软件。全书共分四篇24章,详细介绍了VisualBasic数据库访问技术以及Windows邑用控件的使用、ActiveX组件开发及网络程序开发等方面的内容。 VisualBasic是目前主流的Windows编程工具之一,SQLServer也是当前最流行的数据库管理软件之一。

    大小:96 MBJavascript电子书

  • JavaScript数据可视化编程

    JavaScript数据可视化编程

    大小:61.8 MBjs编程电子书

  • JavaScript高级程序设计(第4版)

    JavaScript高级程序设计(第4版)

    《JavaScript高级程序设计(第4版) 》是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了JavaScript开发者必须掌握的前端开发技术,涉及JavaScript的基础特性和高级特性。书中详尽讨论了JavaScript的各个方面,从JavaScript的起源开始,逐步讲解到新出现的技术,其中重点介绍ECMAScript和DOM标准。在此基础上,接下来的各章揭示了JavaScript的基本概念,包括类、期约、迭代器、代理,等等。另外,书中深入探讨了

    大小:122 MBJavaScript

  • JavaScript+Vue+React全程实例

    JavaScript+Vue+React全程实例

    这书根据基础知识与开发实践活动紧密结合的观念,选萃当今简易、好用和时兴的百余个JavaScript编码案例,协助阅读者学习培训把握JavaScript开发语言。本书內容详实、重中之重突显、浅显易懂,包含了JavaScript前端开发开发的各个方面。

    大小:59150 MB MJS实例

  • JavaScript权威指南(第六版/英文版)

    JavaScript权威指南(第六版/英文版)

    内容简介 本书是一本针对JavaScript语言的核心内容以及由浏览器定义的客户端JavaScript应用程序编程接口的程序员指南和综合参考书。 本书第6版涵盖了HTML 5和ECMAScript5。为了介绍当今Web开发的实践,很多章节被完全重写过。这一版新添加的章节详细讲解了jQuery和服务器端JavaScript编程。 此书推荐给那些想学习Web编程技巧的有经验的程序员,以及那些想要精通这门语言的JavaScript程序员。 目录 Preface 1.Introduction to JavaScr

    大小:13.5 MBJavaScript指南电子书

  • JavaScript高效图形编程

    JavaScript高效图形编程

    内容简介 本书是一本具有很强实操性的JavaScript图书,全书共分10章,涵盖的主要内容有:JavaScript的面向对象机制、JavaScript性能优化、jQuery和ExtJS库、高级UI设计、Web游戏开发、面向移动设备的开发、图形编程知识等。 本书适合有一定Web开发经验和JavaScript基础的开发人员学习。 作者简介 Raffaele Cecco是欧洲视频游戏产业的资深程序员。他曾在伦敦King of the Jungle软件工作室任技术总监,其客户包括美国孩之宝玩具(Hasbro)公

    大小:14.8 MBJavaScript电子书

  • 《斯坦福程序设计入门课:JavaScript实现》代码+ppt+参考答案

    《斯坦福程序设计入门课:JavaScript实现》代码+ppt+参考答案

    本书通过使用一门叫JavaScript的语言,教会你如何编写程序,引导你走上奇妙的计算机科学的旅程。JavaScript语言是基于Web的应用程序的核心语言。书中所有示例代码都可以在任何浏览器上运行,包括你手机上的浏览器。虽然本书是使用JavaScript来演示,然而,更重要的是,本书着重讲解的是编程基本原则,其中的道理可以用在任何其他语言中。本书旨在用于大学课程中的第一门编程课。它覆盖了传统计算机科学首门课程(通常称为CS1)的所有内容。 封面图

    大小:42 MB程序设计配套资源

  • 小马哥JavaScript基础入门

    教程介绍 JavaScript(简称JS) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

    大小:5.79 GBJavaScript

  • JavaScript快速全栈开发

    JavaScript快速全栈开发

    内容简介 这本书涵盖了JavaScript快速发展的多项前沿技术,是一部极其罕见的前端和后端技术的杰作。本书涉及的技术包括Node.js、MongoDB、TwitterBootstrap、LESS、jQuery、Parse.com、Heroku等,分三部分介绍了如何利用这些技术快速构建软件原型。第一部分是基础知识,让我们真正了解前后端和敏捷开发,学会构建本地和云环境。第二部分和第三部分分别介绍了如何构建前端原型和后端原型。作者从前端组件开始,为一个示例聊天应用程序Chat构建了几个版本(We

    大小:11.7 MBJavaScript电子书

  • JavaScript编程精解(第3版)

    JavaScript编程精解(第3版)

    编辑推荐 本书基于ES6新特性! 本书从JavaScript的基本语言特性入手,提纲挈领地介绍JavaScript的主要功能和特色,包括基本结构、函数、数据结构、高阶函数、错误处理、正则表达式、模块、异步编程、浏览器文档对象模型、事件处理、绘图、HTTP表单、Node等,可以帮助你循序渐进地掌握基本的编程概念、技术和思想。而且书中提供5个项目实战章节,涉及路径查找、自制编程语言、平台交互游戏、绘图工具和动态网站,可以帮助你快速上手实际的项目。此

    大小:134 MBJavaScript

下载地址

学习笔记

23小时23分钟前回答

JavaScript调用模式与this关键字绑定的关系

Invocation 调用 调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数。 实参与形参不一致不会导致运行时错误,多的被忽略,少的补为undefined 每个方法都会收到两个附加参数:this和arguments。this的值取决于调用的模式,调用模式:方法,函数,构造器和apply调用模式 this被赋值发生在被调用的时刻。不同的调用模式可以用call方法实现 var myObject = { value: 0, increment: funct……

15小时22分钟前回答

再JavaScript的jQuery库中编写动画效果的指南

jquery中常用的动画的方法就是hide()与show(). $(element).hide()这段代码可以与这相等element.css("display","none") 在hide(time)与show(time)中填入事件,可以慢慢消失跟显现。可以修改元素的多个样式,高度,宽度,不透明度。 另一组方法fadeIn()与fadeOut()这个与hide跟show不同的是,当使用hide或者show的时候会改变网页的高度,而fadeIn与fadeOut则不会。 $("#panel h5.head").toggle(function(){ $(this).addClass("highl……