QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

采访.NET 版 Cucumber 的创始人 Aslak Hellesøy

  • 2009-11-22
  • 本文字数:991 字

    阅读完需:约 3 分钟

Aslak: 先从两者的相似之处开始吧!FIT 和 Cucumber 都是命令行工具。实际上,Fitnesse 是基于 FIT 的 Wiki 工具。 测试语言

FIT/Fitnesse 和 Cucumber 都执行高级语言编写的验收测试。FIT 仅识别 HTML,Fitnesse 则通过提供 Wiki 语法来简化编写测试的过程。在 FIT/Fitnesse 当中,所有的测试都以表格的形式呈现。

另一方面,Cucumber 让用户用纯文本文件且不受英语的限制来编写测试。例如:Ou Français. Eller norsk. или Русский。它支持超过 40 种语言。事实上,Cucumber 从关键字"Scenario"、“Given”、"When"或"Then"开始识别代码。

当然,Cucumber 还可以在文本中镶嵌表格,故我们可以编写混合面向行为和面向数据的测试。有趣的是,Fitnesse 现在支持在表格中使用 Scenario、Given、When 和 Then 关键字,所以我们可以通过两种方式来完成工作。这是一种良性竞争。

以下是 Cucumber 示例,.feature 文件在文本中参杂了表格:

复制代码
# language: en
Feature: Addition
  In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
Scenario Outline: Add two numbers
Given I have entered <input_1> into the calculator
And I have entered <input_2> into the calculator
When I press <button>
Then the result should be <output> on the screen
Examples:
| input_1 | input_2 | button | output |
| 20 | 30 | add | 50 |
| 2 | 5 | add | 7 |
| 0 | 40 | add | 40 |<b><br></br></b>

编程语言

Fit 和 Cucumber 都需要“胶合”代码,它处于高级语言和测试语言之间。在 FIT,这称作固定项,在 Cucumber 中,称作步骤定义。Cucumber 可以用 C#、Java、Scala、Clojure、Groovy、Javascript、Ioke 和 Ruby 来写步骤定义,所以在这方面 Cucumber 比 FIT 用途更广。

以下是 C#编写的步骤定义,匹配上例中在计算器中输入代码的实例:

复制代码
[Given(@"^I have entered (\d+) into the calculator$")]
public void EnterNumber(double n)
{
_calculator.Push(n);
}

编辑器
FitNesse 比 Cucumber 的优势在于 Wiki 支持。Cucumber 目前还没有基于网页的编辑器,让非技术人员来编辑验收测试。虽然有一款工具叫 Lowdown,但是它不支持表格,所以它很快就落伍了。JetBrains 公司的 RubyMine 有合适的编辑器,但是它主要面向程序员。

2009-11-22 22:332482
用户头像

发布了 87 篇内容, 共 21.6 次阅读, 收获喜欢 1 次。

关注

评论

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

NLP 入门导论

小付聊测试

AI 入门 nlp

华为数据中心产业论坛 | 打造低碳、绿色数据中心,构建新型数字产业能源基础设施

Geek_2d6073

创建各种类型的3D模型:Rhino 7中文激活版

真大的脸盆

Mac Mac 软件 三维建模 建模软件 3d建模

一图看懂一体化数据安全平台 uDSP

原点安全

数据治理 数据安全 数据安全法 信息泄露 个人信息安全

MySQL的varchar存储原理:InnoDB记录存储结构

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

如何简单快捷的使用上ChatGPT?

Ricky

人工智能 openai ChatGPT

手把手教你用代码画架构图 | 京东云技术团队

京东科技开发者

京东云 代码实现 企业号 5 月 PK 榜 C4

华为云云原生视窗:一文回顾Q1精彩瞬间

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

一周狂赚50万,GPT-4帮你在线“脱单”,AI女友按分钟收费,男友高达数量1000+

加入高科技仿生人

人工智能 AI 低代码 ChatGPT GPT-4

软件测试 | SQLite管理工具

测吧(北京)科技有限公司

测试

山东移动:全业务域核心系统升级,实现大幅降本增效

OceanBase 数据库

数据库 oceanbase

阿里大佬在Github分享的Spring Cloud全栈笔记,你想象不到有多全

做梦都在改BUG

Java 架构 微服务 Spring Cloud

时序数据库中的乱序问题-写不动的老程序员带你解读

Greptime 格睿科技

云原生 时序数据库 国产时序数据库 乱序数据

行业实践专栏上线|互娱领域专家解读 Flink 企业应用实践

Apache Flink

大数据 flink 实时计算

共享电动车制造的厂家有哪些?要注意什么

共享电单车厂家

共享电动车厂家 共享电单车生产 共享电动车制造 本铯电动车厂家

openEuler 成功适配 LeapFive InFive Poros 开发板

openEuler

Linux 操作系统 openEuler 开发板 risc-v

一文看懂THD布局要求

华秋PCB

PCB 布局 PCB设计 布线 波峰焊

明道云开放日上海站开启报名

明道云

深入理解 synchronized 的锁升级

做梦都在改BUG

Java synchronized 锁升级

分库分表的 21 条法则,hold 住!

小小怪下士

Java MySQL 程序员 分库分表

软件测试 | 安装PyMySQL

测吧(北京)科技有限公司

软件测试 | 配置MySQL

测吧(北京)科技有限公司

测试

低代码开发平台 重塑数字医疗生产力

力软低代码开发平台

从可逆计算看声明式编程

canonical

开源 低代码 声明式 命令式

碉堡了!阿里架构师手打的Java10W字面经,已经助我拿了6个offer

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Difference between from DR4019 and DR4029 /industrial wifi5 router/support openwrt.

Cindy-wallys

IPQ4019 ipq4029

飞桨EasyDL月刊:4月功能全新升级,模型训练步骤缩短63%

飞桨PaddlePaddle

飞桨 EasyDL

MatrixGate 5.0 性能再升级,加载速度提升三倍!

YMatrix 超融合数据库

数据库 开源数据库 超融合数据库

【保姆级教程】如何用Rust编写一个ChatGPT桌面应用 | 京东云技术团队

京东科技开发者

rust 京东云 桌面应用 企业号 5 月 PK 榜

我以为我对Mysql很熟,直到遇到了阿里这份笔记

做梦都在改BUG

Java MySQL 数据库

采访.NET版Cucumber的创始人Aslak Hellesøy_研发效能_Jon Arild Tørresdal_InfoQ精选文章