图书介绍
测试驱动的JavaScript开发2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)约翰森著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111362746
- 出版时间:2012
- 标注页数:379页
- 文件大小:21MB
- 文件页数:397页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
测试驱动的JavaScript开发PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 测试驱动开发1
第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
第二部分 开发人员的JavaScript53
第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.4this关键字64
5.4.1隐式地设置this65
5.4.2显式地设置this65
5.4.3使用原初类型当做this66
5.5小结67
第6章 函数和闭包的应用68
6.1绑定函数68
6.1.1this被丢弃:一个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.2tabController对象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测试驱动开发实践169
第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的服务器端JavaS cript269
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
第四部分 测试模式349
第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
热门推荐
- 2191587.html
- 2502195.html
- 2306350.html
- 1656934.html
- 2338905.html
- 343682.html
- 1592151.html
- 1094047.html
- 1925176.html
- 3261328.html
- http://www.ickdjs.cc/book_1077765.html
- http://www.ickdjs.cc/book_2228617.html
- http://www.ickdjs.cc/book_3154590.html
- http://www.ickdjs.cc/book_3415887.html
- http://www.ickdjs.cc/book_2279888.html
- http://www.ickdjs.cc/book_3528997.html
- http://www.ickdjs.cc/book_1371639.html
- http://www.ickdjs.cc/book_2733124.html
- http://www.ickdjs.cc/book_2605304.html
- http://www.ickdjs.cc/book_2165418.html