《JavaScript测试驱动开发》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)文卡特·苏布拉马尼亚姆(Venkat Subramaniam)著;毛姝雯译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115477156
  • 页数:289 页
图书介绍:本书主体内容包括两部分:第一部分涵盖自动化测试的基础,介绍如何为同步函数和异步函数编写测试,以及当代码包含复杂的依赖关系时如何实现自动化测试;第二部分通过一个测试驱动开发的示例,让读者能够运用在第一部分所学的内容,为客户端和服务器端编写自动化测试。本书在帮助读者学习和研究测试工具和技术的同时,还会介绍一些软件设计原则,有助于实现轻量级设计,并得到可维护的代码。

第1章 自动化测试让你重获自由 1

1.1变更的挑战 1

1.1.1变更的成本 1

1.1.2变更的影响 2

1.2测试与验证 2

1.3采用自动化验证 3

1.4为什么难以验证 5

1.5如何实现自动化测试 6

1.6小结 6

第一部分 创建自动化测试 10

第2章 测试驱动设计 10

2.1让我们开始吧 10

2.1.1检查npm和Node js的安装 11

2.1.2创建示例项目 11

2.1.3创建测试套件和金丝雀测试 12

2.1.4验证函数的行为 14

2.1.5验证另一个数据 16

2.2正向测试、反向测试和异常测试 18

2.3设计服务器端代码 20

2.3.1从测试列表开始 20

2.3.2回文项目 21

2.3.3编写正向测试 22

2.3.4编写反向测试 26

2.3.5编写异常测试 27

2.4评估服务器端代码覆盖率 29

2.5为测试客户端代码做准备 31

2.5.1切换到客户端项目 31

2.5.2配置Karma 33

2.5.3从金丝雀测试开始 34

2.6设计客户端代码 34

2.7评估客户端代码覆盖率 37

2.8小结 38

第3章 异步测试 39

3.1服务器端回调 39

3.1.1一次天真的尝试 40

3.1.2编写异步测试 41

3.1.3编写一个反向测试 43

3.2客户端的回调函数 44

3.3测试promise 46

3.3.1对promise的简单介绍 46

3.3.2 promise异步测试的类型 47

3.3.3返回promise对象的函数 48

3.3.4使用done()进行测试 49

3.3.5返回promise的测试 49

3.3.6使用chai-as-promised 50

3.3.7结合eventually和done() 50

3.3.8为promise编写反向测试 51

3.4小结 52

第4章 巧妙处理依赖 53

4.1问题以及spike解决方案 53

4.1.1转移到spike项目 53

4.1.2从spike中获得见解 54

4.2模块化设计 55

4.3尽量分离依赖 56

4.3.1结束spike,准备自动化测试 56

4.3.2测试c reatURL 57

4.4使用测试替身 59

4.5依赖注入 61

4.6交互测试 62

4.7使用Sinon清理测试代码 64

4.7.1安装Sinon 65

4.7.2初探Sinon 65

4.7.3使用Sinon的mock测试交互 67

4.7.4使用Sinon的stub 测试状态 68

4.7.5使用Sinon的spy拦截调用 70

4.8回顾与继续 72

4.9小结 75

第二部分 真实的自动化测试 78

第5章 Node.js测试驱动开发 78

5.1从策略设计开始——适度即可 78

5.2深入战略设计——测试优先 79

5.2.1创建初始测试列表 79

5.2.2编写第一个测试 80

5.2.3编写一个正向测试 82

5.3继续设计 85

5.3.1 readTickersFile的反向测试 85

5.3.2设计parseTickers函数 87

5.3.3设计processTickers函数 88

5.4创建spike以获得启发 89

5.4.1为getPrice创建spike 89

5.4.2设计getPrice函数 90

5.5模块化以易于测试 93

5.5.1设计processResponse和processError函数 93

5.5.2设计processHttpError 95

5.5.3设计parsePrice和process-Error 96

5.6分离关注点 97

5.6.1设计printReport 98

5.6.2设计sortData 98

5.7集成和运行 100

5.8回顾代码覆盖率和设计 102

5.8.1评估代码覆盖率 102

5.8.2代码设计 103

5.9提供HTTP访问 104

5.10小结 105

第6章 Express测试驱动开发 106

6.1为可测试性设计 106

6.1.1创建策略设计 107

6.1.2通过测试创建战略设计 108

6.2创建Express应用并运行金丝雀测试 108

6.3设计数据库连接 109

6.4设计模型 113

6.4.1建立数据库连接和测试固件 113

6.4.2设计all函数 114

6.4.3设计get函数 115

6.4.4设计add函数 116

6.4.5处理delete函数 121

6.4.6设计共享的校验代码 123

6.5设计路由函数 126

6.5.1重温路由 127

6.5.2从为Router创建stub开始 128

6.5.3测试路径/的GET方法 129

6.5.4测试路径/:id的GET方法 131

6.5.5处理路径/的P05T方法 133

6.5.6以路径/:id的DELETE方法结束整个测试 135

6.6评估代码覆盖率 136

6.7运行应用 138

6.7.1 使用Curl 139

6.7.2使用Chrome扩展程序 140

6.7.3观察响应 141

6.8小结 141

第7章 与DOM和jQuery协作 142

7.1创建策略设计 142

7.2通过测试创建战略设计 143

7.2.1创建测试列表 143

7.2.2创建项目 144

7.3增量开发 145

7.3.1设计getTasks 146

7.3.2更新DOM 147

7.3.3调用服务 150

7.3.4注册window对象的onload事件 154

7.4运行UI 155

7.5完成设计 156

7.5.1设计addTask 157

7.5.2设计deleteTask 163

7.6使用jQuery进行测试 165

7.6.1准备工作 166

7.6.2使用jQuery选择器 166

7.6.3使用$.ajax验证调用 167

7.6.4 测试document的ready函数 168

7.6.5完整的测试和使用jQuery 的代码实现 170

7.7评估代码覆盖率 170

7.8小结 171

第8章 使用AngularJS 172

8.1测试AngularJS的方式 172

8.2初步设计 175

8.3关注控制器 176

8.3.1准备工作空间 176

8.3.2编写第一个测试 177

8.3.3设计控制器 177

8.4设计服务交互 180

8.5分离关注点,减少mock 182

8.5.1找到合适的地方 183

8.5.2结合经验测试和交互测试 183

8.5.3测试加载顺序 186

8.6继续设计 187

8.6.1设计addTask 188

8.6.2设计deleteTask 192

8.7设计服务 194

8.7.1设计get 函数 194

8.7.2设计add函数 197

8.7.3设计delete 函数 198

8.8评估代码覆盖率 199

8.9运行UI 200

8.10小结 201

第9章 Angular 2测试驱动开发 202

9.1通过spike学习Angular 202

9.1.1管道、服务和组件 203

9.1.2创建项目 203

9.1.3创建管道 204

9.1.4创建服务 205

9.1.5创建组件 207

9.1.6集成 211

9.2通过测试设计Angular应用 213

9.2.1创建项目 214

9.2.2创建测试列表 215

9.3测试驱动组件的设计 215

9.3.1验证是否设置组件属性 215

9.3.2初始化模型 218

9.3.3设计getTasks 219

9.3.4对任务进行排序 222

9.3.5验证依赖注入 224

9.4测试驱动服务的设计 226

9.5测试驱动管道的设计 230

9.6测试驱动启动代码 234

9.7集成 236

9.8完成设计 237

9.8.1设计任务添加功能 238

9.8.2设计任务删除功能 245

9.8.3评估代码覆盖率 248

9.9小结 249

第10章 集成测试和端到端测试 250

10.1认识Protractor 250

10.1.1使用Protractor的理由 251

10.1.2安装Protractor 251

10.1.3使用Protractor进行测试 251

10.1.4为UI层测试做准备 253

10.1.5编写第一个测试 254

10.1.6测试数据发送 255

10.2启动服务器和配置数据库 256

10.2.1为TO-DO应用安装Protractor 257

10.2.2在设置前启动服务器 257

10.2.3为不同的环境创建数据库 259

10.2.4在beforeEach中设置数据 260

10.3测试jQuery UI 261

10.3.1设置Protractor配置文件 261

10.3.2发现必要的测试 261

10.3.3实现集成测试 262

10.4使用页面对象 265

10.5测试AngularJS的UI 268

10.6测试Angular 2的UI 272

10.7小结 275

第11章 测试驱动你自己的应用 276

11.1努力的成果 276

11.2测试的规模和层次 279

11.3测试驱动:程序员指南 280

11.4测试驱动:团队领导、架构师指南 282

11.5测试驱动:项目经理指南 283

11.5.1促进可持续的敏捷开发实践 283

11.5.2优雅地处理遗留应用 283

11.5.3结束新的遗留应用 284

11.6摇滚吧 285

附录 网络资源 286

参考文献 288