写点什么

用 Cucumber 脚本做故事驱动开发

  • 2009 年 3 月 04 日
  • 本文字数:766 字

    阅读完需:约 3 分钟

行为驱动开发(BDD)的流行已然无可逆转。它始创于 2003 年,由 Dan North 创立,与测试驱动开发相呼应。BDD 鼓励软件项目中的各种角色相互协作:开发人员、QA、非技术角色或者业务分析师。

Ruby 因其便于创建和使用 DSL 的特性,也带来了许多 BDD 框架的诞生,如 RSpec Aslak Hellesøy 的作品 Cucumber 也是其中一例,它可以用来测试 Java、.NET 和 Flex 代码。也可以读取纯文本文件,执行自动化功能测试。

下面是一个典型的场景示例(来自于项目的 Wiki ):

复制代码
Feature: Search courses
In order to ensure better utilization of courses
Potential students should be able to search for courses
Scenario: Search by topic
Given there are 240 courses where neither has the topic "biology"
And there are 3 courses A,B,C that each have "biology" as one of the topics
When I search for "biology"
Then I should see a the following courses:
| title |
| A |
| B |
| C |

然后就可以用真实的代码来实现这段话,在测试失败中不断迭代直至最后成功。Cucumber 还支持把场景中失败或者成功的部分加以高亮显示(下面是 Cucumber 网站上的一张图片):

编写 Cucumber 文件的语言是 Gherkin ,它可以附着于各种自然语言之上,它的关键字就是“Given”、“And”等等这样的字眼,另外还可以用法语、德语等等语言来写。用户编写好每一步的定义以后,Cucumber 就会一步一步的解析关键字右侧的自然语言并执行代码。

应用Cucumber 的方式有很多,例如给系统管理员用作Web 应用的集成测试,或者将分布式系统集成并测试消息机制,又或者编写PDF 的测试

Cucumber 的 0.1.16 版本可以做为 Ruby Gem 下载,0.1.99.10 版本可以在 GitHub 上获取。

查看英文原文 Story Driven Development Recipes with Cucumber

2009 年 3 月 04 日 20:322949
用户头像

发布了 197 篇内容, 共 48.5 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

js中的变量提升和函数提升

北洋

android 6月月更

linux之我常用的20条命令(之二)

入门小站

Linux

读《Software Systems Architecture》(14)—— Evaluating the Architecture

术子米德

架构师成长笔记

读《Software Systems Architecture》(18)—— The Information Viewpoint

术子米德

架构师成长笔记

读《Software Systems Architecture》(25)—— The Security Perspective

术子米德

架构师成长笔记

GoLang简单易用的json value读取工具!还并发安全

Krysta

Go json 简单清楚 方便

Python每日一练:从入门到实践四十招(牛客网新题库)

🧸漫月柒七

读《Software Systems Architecture》(13)—— Creating the Architectural Description

术子米德

架构师成长笔记

读《Software Systems Architecture》(15)—— Introduction to the Viewpoint Catalog

术子米德

架构师成长笔记

盘点攻防演练中红队的主要工具(下)

穿过生命散发芬芳

6月月更 攻防演练

在线JSON转TSV工具

入门小站

工具

读《Software Systems Architecture》(22)—— The Operational Viewpoint

术子米德

架构师成长笔记

读《Software Systems Architecture》(24)—— Introduction to the Perspective Catalog

术子米德

架构师成长笔记

数仓开发人员的价值体现

奔向架构师

数据仓库 数据模型 6月月更

读《Software Systems Architecture》(16)—— The Context Viewpoint

术子米德

架构师成长笔记

读《Software Systems Architecture》(17)—— The Functional Viewpoint

术子米德

架构师成长笔记

读《Software Systems Architecture》(21)—— The Deployment Viewpoint

术子米德

架构师成长笔记

计算机网络之IP协议与以太网

未见花闻

6月月更

红米 9A的自动化测试

IT蜗壳-Tango

6月月更

GetX 状态管理从入门到入迷

岛上码农

flutter ios 前端 安卓 6月月更

数据库每日一题---第13天:寻找病患

知心宝贝

数据库 云计算 前端 后端 6月月更

读《Software Systems Architecture》(11)—— Using Styles and Patterns

术子米德

架构师成长笔记

读《Software Systems Architecture》(12)—— Producing Architectural Models

术子米德

架构师成长笔记

读《Software Systems Architecture》(19)—— The Concurrency Viewpoint

术子米德

架构师成长笔记

在线文本保留中文提取过滤工具

入门小站

工具

Java中检查字符串是否是有效日期

okokabcd

Java

看板方法的定义、原则和实践

PingCode

三点微服务标准化要素

阿泽🧸

微服务 6月月更

接口测试使用Python装饰器

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

读《Software Systems Architecture》(20)—— The Development Viewpoint

术子米德

架构师成长笔记

读《Software Systems Architecture》(23)—— Archiving Consistency Across Views

术子米德

架构师成长笔记

用Cucumber脚本做故事驱动开发_Java_Sebastien Auvray_InfoQ精选文章