《Cucumber 行为驱动开发指南》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(英)韦恩,(挪)赫勒索著;许晓斌,王江平译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2013
  • ISBN:9787115318855
  • 页数:272 页
图书介绍:本书是Cucumber的权威指南,两位作者是Cucumber的创始人和最有经验的用户和贡献者,它会提供使用Cucumber所需的全部知识,讲述如何用Cucumber指导开发过程。第一部分提供Cucumber入门所需的全部知识,第二部分通过可以工作的例子巩固学到的知识,同时学习一些更高级的Cucumber技术,第三部分提供一些解决问题的方法,针对的都是最困难、最常见的问题。

第一部分Cucumber基础 1

第1章 为何使用Cucumber 3

1.1自动化验收测试 3

1.2行为驱动开发 4

1.2.1通用语言 4

1.2.2实例 5

1.3活的文档 6

事实来源 6

1.4 Cucumber如何工作 6

1.5我们学到了什么 7

第2章Cucumber初体验 9

2.1理解我们的目标 9

2.2创建一个特性 10

2.3创建步骤定义 12

2.4实现第一个步骤定义 13

2.5运行程序 14

2.6改变格式器 15

2.7添加一个断言 16

2.8让测试通过 18

2.9我们学到了什么 20

2.9.1目录结构 20

2.9.2小步前进 21

2.9.3 Gherkin 21

2.9.4步骤定义 21

第3章Gherkin基础 22

3.1 Gherkins是干什么的 22

3.1.1具体实例 22

3.1.2可执行的规格说明 23

3.2格式和语法 24

3.2.1关键字 25

3.2.2 模拟运行 25

3.3 Feature 25

3.4场景 26

3.4.1Given、 When和Then 27

3.4.2 And和But 27

3.4.3使用星号替换Given、When和Then 28

3.4.4无状态 28

3.4.5名称和描述 29

3.5注释 29

3.6语言 30

3.7我们学到了什么 31

第4章 步骤定义:外在篇 34

4.1步骤和步骤定义 35

4.1.1匹配步骤 35

4.1.2创建步骤定义 36

4.1.3 Given、 When和Then是相同的 37

4.1.4使用本国语言 38

4.2捕获参数 39

4.2.1捕获组 39

4.2.2多选分支 39

4.2.3点号 40

4.2.4星号修饰符 40

4.2.5字符组 41

4.2.6字符组简记法 41

4.2.7加号修饰符 42

4.3多重捕获 42

4.4灵活性 43

4.4.1问号修饰符 44

4.4.2 非捕获组 44

4.4.3锚点 45

4.5返回结果 45

4.5.1未定义的步骤 46

4.5.2待定的步骤 48

4.5.3失败的步骤 49

4.6我们学到了什么 50

第5章 富有表现力的场景 53

5.1背景 53

5.2数据表 56

5.2.1在步骤定义中处理数据表 57

5.2.2将数据表转换成数组 58

5.2.3使用diff!比较数据表 59

5.3场景轮廓 60

5.3.1更大的占位符 62

5.3.2多个实例表 63

5.3.3解释自己 64

5.4嵌套步骤 65

5.4.1嵌套步骤重构 66

5.4.2参数和嵌套步骤 67

5.4.3嵌套步骤的危险 67

5.5文档字符串 68

5.6使用标签和子文件夹保持条理性 69

5.6.1子文件夹 69

5.6.2运行子文件夹中的特性 70

5.6.3标签 70

5.7我们学到了什么 72

第6章Cucumber常见问题及解决之道 73

6.1感受痛苦 73

6.1.1闪烁的场景 74

6.1.2脆弱的特性 74

6.1.3缓慢的特性 75

6.1.4厌倦的利益相关人 76

6.2同心协力 76

6.2.1偶然细节 77

6.2.2命令式步骤 78

6.2.3重复 80

6.2.4语言不通用 82

6.2.5闭门造车式的特性 82

6.3照管好你的测试 84

6.3.1渗露的场景 84

6.3.2竞争条件和打瞌睡的步骤 85

6.3.3共享的环境 86

6.3.4被隔离的测试人员 87

6.3.5固件数据 87

6.3.6大量场景 89

6.3.7大泥球 90

6.4停掉生产线和缺陷预防 90

6.5我们学到了什么 92

第二部分 可以工作的示例 95

第7章 步骤定义:内在篇 97

7.1勾勒出领域模型 98

7.1.1准确用词 99

7.1.2实话实说 100

7.1.3做最简单的事情 101

7.2使用变形器消除重复 102

7.3为World添加自定义辅助方法 105

7.3.1在World中存储状态 107

7.3.2创建自定义辅助方法 107

7.3.3自定义WorlD 108

7.3.4设计抵达终点线的方法 109

7.4组织代码 113

7.4.1隔离应用程序代码 113

7.4.2启动Cucumber环境 113

7.4.3变形器和World模块 114

7.4.4组织步骤定义 114

7.4.5模拟运行和enV.rB. 114

7.5我们学到了什么 115

第8章 支持代码 117

8.1修复bug 117

检查和重构 121

8.2开启用户界面 123

安装gem 125

8.3做出转换 126

设计用户界面 128

8.4使用钩子 129

8.4.1打标签的钩子 130

8.4.2观察场景 131

8.4.3 Around钩子 131

8.4.4在其他时间运行的钩子 132

8.5构建用户界面 133

提供现金 134

8.6我们学到了什么 136

第9章 处理消息队列和异步组件 139

9.1我们全新的异步架构 139

9.2如何同步 140

9.2.1通过监听同步 141

9.2.2通过取样同步 141

9.3实现新架构 142

9.3.1驱动出接口 142

9.3.2构建交易队列 143

9.3.3构建BalanceStore 144

9.3.4添加钩子以重置状态 145

9.3.5构建Transaction Processor 145

9.4修复闪烁的场景 146

9.4.1安装及配置Service Manager 146

9.4.2调查闪烁 148

9.4.3使用取样修复闪烁 150

9.4.4测试什么都没有发生 152

9.5我们学到了什么 152

第10章 数据库 154

10.1 ActiveRecord介绍 154

使用迁移管理模式变更 155

10.2重构至使用数据库 156

10.3读取及写入数据库 159

10.4用事务清理数据库 162

10.5使用截断清理数据库 166

10.6我们学到了什么 167

第三部分 应用Cucumber 169

第11章Cucumber命令行界面 171

11.1 Cucumber命令行选项 171

11.2运行一个场景子集 172

11.2.1 使用标签表达式过滤 172

11.2.2基于行号过滤 173

11.2.3基于名称过滤 174

11.3改变Cucumber的输出 174

11.3.1特殊的格式器 174

11.3.2格式化至文件及使用多种格式器 175

11.3.3显示完整回溯 175

11.4指定步骤定义的位置 175

11.5管理进行中的工作 177

11.6使用profiile 177

11.7从Rake运行Cucumber 178

11.8在持续集成中运行Cucumber 178

11.8.1严格要求 178

11.8.2共享报告 179

11.9我们学到了什么 179

第12章 测试RESTWeb服务 181

12.1进程内测试基于Rack的REST API 182

12.1.1建立应用的骨架——然后存储一些水果 183

12.1.2使用Rack-Test测一测我们的应用 185

12.1.3比较JSON 187

12.2进程外测试任意REST API 192

12.3我们学到了什么 198

第13章 为遗留应用添加测试 199

13.1特性描述测试 200

13.2消灭buG 202

13.3添加新的行为 202

13.4代码覆盖率 204

13.5我们学到了什么 204

第14章 引导RailS 206

14.1运行生成器 207

14.2创建用户 208

14.3发布消息 212

14.4关联消息与用户 215

14.5手工创建控制器 217

14.6实现视图 218

14.7我们学到了什么 219

第15章 使用Capybara测试Ajax Web应用 221

15.1实现不用Ajax的简单搜索 223

15.1.1准备内容以供搜索 223

15.1.2导航、填写输入域和点击按钮 224

15.1.3修复控制器代码 225

15.1.4让Capybara做点事情 226

15.1.5验证页面内容 228

15.1.6从页面中提取数据 228

15.1.7使 用表格比较 230

15.2基于Ajax的搜索 232

15.2.1使用SeleniuM. 233

15.2.2活动搜索的设计 236

15.2.3让Web应用返回JSON 238

15.2.4处理Ajax的异步特性 240

15.3 Capybara API 242

15.3.1导航 242

15.3.2链接与按钮点击 242

15.3.3表单交互 242

15.3.4查询 243

15.3.5查找 243

15.3.6范围限定 244

15.4抓取屏幕截图 244

15.5我们学到了什么 245

第16章 使用Aruba测试命令行应用 247

16.1简单界面 247

16.2我们的第一个Aruba特性 248

16.2.1流和退出状态 249

16.2.2安装ArubA. 250

16.2.3考察Aruba的步骤定义 251

16.3使用文件与可执行程序 252

16.3.1使用@announce查看Aruba见到的内容 255

16.3.2隔离场景 256

16.3.3告知Aruba勿删文件 256

16.3.4设置Aruba的工作目录 257

16.3.5设置SPATH 258

16.4与用户输入交互 259

16.5使用Aruba的Ruby DSL 262

16.6我们学到了什么 263

附录A在其他平台上使用CucumbeR 264

附录B 安装CucumbeR. 266

B.1安装RubY 266

B.1.1 OS X和LinuX 266

B.1.2 WindowS 267

B.2 HTTP代理设置 267

B.3安装BundleR 267

B.4安装Cucumber(及RSpec) 268

B.5安装其他geM 268

B.6选择一款文本编辑器 268

附录C Ruby gem版本 269

附录D参考文献 271