本周是2015年的第二期赠书,这周小编给大家送《编写可测试的JavaScript代码》,希望你喜欢。
活动结尾部分有最新上架新书推荐,如果你有特别喜欢的,就直接回复给小编,我会参考大家的意见,选择下一期的赠书。
本周赠品
本周,微信君给大家推荐@人民邮电出版社-信息技术分社 即将上架新书《编写可测试的JavaScript代码》,同时拿出5本书作为福利送给微信小伙伴们。
活动规则
1、将本条信息分享到朋友圈并关注微信公从号,然后截图并回复给微信君即可。微信号:ptpressitbooks(人邮IT书坊)
2、抽奖方式:随机抽取
3、开奖时间,每周五开奖。参与活动的朋友,请及时关注获奖名单,以免错过机会。
4、为了能将赠品顺利送达获奖者手中,请获奖者提供正确的姓名、电话、地址、邮编给微信君,无需获奖者付快递费。
5、收到获奖者信息后,我们会第一时间寄出奖品。
活动链接:http://mp.weixin.qq.com/s?__biz=MzA3NTIzMzIxNQ==&mid=202599538&idx=1&sn=e2430a3f5ee751c6121395042da4927f#rd
赠品展示
资深程序员讲述JavaScript代码编写和测试之道
可测试JavaScript代码的绝佳学习资料
内容简介
JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码。
《编写可测试的JavaScript代码》的目标是教授如何为客户端和服务器编写和维护可测试的JavaScript代码。全书共8章。首先介绍了什么是可测试的代码,然后分别从代码复杂度、架构、单元测试、代码覆盖率、集成测试、性能测试、负载测试、调试和自动化等角度详细介绍。书中丰富的示例能够帮助读者从头开始养成好的代码编写习惯,提升测试效率及代码的可维护性。
本书的作者曾先后在YouTube、Yahoo!以及Google等公司从事前端开发及测试相关工作,具有丰富的经验。本书主要针对那些想成为JavaScript专业开发人员的人;也适合初中级水平或者专家级别的开发人员参考阅读。
本书特色
JavaScript专业开发人员必须具备的一个技能是编写可测试的代码。不管是创建新应用程序,还是重写遗留代码,本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代码。
从减少代码复杂性的方法,到单元测试、代码覆盖率、调试以及自动化,你将全面学到如何编写出让自己和同事能够轻松修复和维护的JavaScript代码。测试JavaScript代码是一个复杂的过程。本书将在很大程度上帮你简化该过程。
整体了解敏捷、测试驱动开发、行为驱动开发;
使用静态语言模式和JavaScript标准减少代码复杂性;
学习基于事件的架构优势,包括模块化、松耦合、可重用性;
在功能和应用程序层面上探索用于编写和运行单元测试的相关工具;
生成代码覆盖率,衡量测试范围和测试有效性;
使用Selenium或CasperJS进行集成测试、性能测试、负载测试;
使用浏览器内置工具、Node.js、移动、生产环境调试;
理解什么是自动化开发,何时以及如何进行自动化开发。
图书目录
第1章 可测试的JavaScript1
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 JSLint20
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 YUIDoc50
2.11.2 JSDoc52
2.11.3 Docco/Rocco54
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 PhantomJS97
4.5.2 Selenium102
4.6 运行服务端JavaScript单元测试109
4.6.1 Jasmine110
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 客户端JavaScript123
5.4.2 服务端JavaScript125
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 Selenium141
6.1.2 CasperJS147
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 Firefox179
7.1.2 Chrome182
7.1.3 Safari185
7.1.4 Internet Explorer187
7.2 Node.js调试187
7.3 远程调试190
7.3.1 Chrome191
7.3.2 PhantomJS196
7.3.3 Firefox197
7.4 移动调试198
7.4.1 Android 4198
7.4.2 iOS 6200
7.4.3 Adobe Edge Inspect202
7.4.4 其他方面的移动调试选择205
7.5 生产环境调试206
7.5.1 最小化代码206
7.5.2 Source Map207
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
人邮IT书坊ID:ptpressitbooks
近期上架新书:
编程珠玑(第2版·修订版)
优质代码:软件测试的原则、实践与模式
深入理解Scala