博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Cucumber:行为驱动开发指南》——1.4 Cucumber如何工作
阅读量:6356 次
发布时间:2019-06-23

本文共 1007 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《Cucumber:行为驱动开发指南》一书中的第1章,第1.4节,作者:【英】Matt Wynne , 【挪】Aslak Hellesy著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 Cucumber如何工作

在深入本书的核心内容之前,我们先简要介绍一个典型的Cucumber测试集,以帮助你了解Cucumber是如何工作的。

Cucumber是一个命令行工具。运行时它会从普通语言编写的称为特性(feature)的文本文件中读取你的规格说明,解析需要测试的场景(scenario),然后针对你的系统运行这些场景以达到测试的目的。每个场景由一系列步骤(step)组成,Cucumber会一步步执行这些步骤。为了让Cucumber能理解特性文件,这些文件必须遵循一些基本的语法规则,这套语法规则就叫Gherkin。

除了特性文件,你还要为Cucumber提供一组步骤定义(step definition),它们是匹配特性文件中每个步骤的Ruby代码,业务语言描述的步骤行为都由这些步骤定义执行。在一个成熟的测试集中,这些步骤定义自身可能只包含一两行Ruby代码,具体的工作都代理给支持代码(support code)库来完成,应用程序领域特定的支持代码库知道如何执行系统的常见任务。通常这会涉及使用一个自动化库(automation library),例如浏览器自动化库Capybara,来与待测系统进行交互。

整个层次结构从特性往下至自动化库,具体如图1-1所示。

screenshot
图1-1 Cucumber测试栈
如果步骤定义中的Ruby代码执行无误,Cucumber就依次执行场景中的下一个步骤。如果场景的所有步骤执行都没有错误,那么Cucumber就将该场景标记为通过。但是,如果场景中任何一个步骤失败了,Cucumber就会将该场景标记为失败并转而执行下一个场景。运行场景的时候,Cucumber打印出相应的结果,告诉你它在干什么,以及它没干什么。

简单来说 Cucumber 就是这么一回事。但作为一个杰出的自动化验收测试框架,Cucumber 还有很多其他优点:你可以使用四十多种语言编写规格说明,可以使用标签(tag)把场景组织和归类,可以轻松集成大批高质量的 Ruby 自动化库,来驱动几乎任何种类的应用程序。随着阅读本书的其他部分,所有上述及更多的内容都将清晰地展现在你面前。

转载地址:http://kizma.baihongyu.com/

你可能感兴趣的文章
JavaScript正则表达式下——相关方法
查看>>
让.aspx同样实现.ashx文件的功能: IHttpHandler
查看>>
Javac命令一次编译一个目录下的所有java文件
查看>>
献给即将27岁的我
查看>>
div 画园
查看>>
ALinq Dynamic 使用指南——慨述(上)
查看>>
现代软件工程 第六章 【敏捷流程】练习与讨论
查看>>
LCA算法的理解
查看>>
ubuntu下安装php memcache扩展
查看>>
ci总结
查看>>
【BZOJ】1030: [JSOI2007]文本生成器(递推+ac自动机)
查看>>
Oracle存储过程返回
查看>>
OC - 属性
查看>>
nginx配置文件详解( 看着好长,其实不长,看了就知道了,精心整理,有些配置也是没用到呢 )...
查看>>
ejb ql 返回object
查看>>
VS2015配置Andriod开发环境
查看>>
你真的懂域名吗?看看万网的域名!
查看>>
[转]URL汉字编码问题(及乱码解决)
查看>>
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
查看>>
atitit.javascript js 上传文件的本地预览
查看>>