写点什么

采访.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:332816
用户头像

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

关注

评论

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

喜报!望繁信科技CEO索强与CTO李进峰双双荣获2024上海软件企业技能人才奖

望繁信科技

人工智能 #大数据 流程智能 #流程挖掘 上海望繁信科技

Prometheus Pushgateway 协议上报观测云最佳实践

观测云

监控

观测云与传统监控:差距究竟有多大?

观测云

监控

gin框架上手实践

FunTester

精益管理| 河南钢铁集团:以盈利型采购生态应对复杂的市场挑战

用友BIP

GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现

阿里巴巴云原生

阿里云 云原生 可观测

CBR云备份与恢复管控简介

天翼云开发者社区

云计算 云服务 云备份

AccessLog| 一款开源的日志分析系统

ClkLog

数据分析 日志分析 埋点 开源软件

活动预告|8月3日 Streaming Lakehouse Meetup · Online 与你相约!

Apache Flink

StarRocks 实时湖仓 paimon

职场<火焰杯>测试开发大赛决赛成绩及获奖名单公布!

霍格沃兹测试开发学社

店铺商品搜索API返回值中的商品标题、图片与价格解析

技术冰糖葫芦

API Explorer API 编排 api 货币化 API 文档

从消息流平台Serverless之路,看Serverless标准演进

Serverless 华为云

领先实践| 能源央企构建世界一流司库管理体系

用友BIP

AI项目验收!用友助力鑫阳钢铁进入智能判钢新时代

用友BIP

喜报!钛铂数据 TapDB 通过中国信通院文档数据库产品测试

tapdata

国产数据库 TapDB 国产分布式文档数据库 钛铂分布式文档数据库 中国信通院测试

GPUStack正式发布: 为大模型而生的开源GPU集群管理器

SEAL安全

AI 大模型 AIGC LLM GenAI

“用友BIP成就数智企业”入选新质生产力案例库

用友BIP

中石化中海燃供总会计师刘汉坤:一场数智革命,对内打破部门墙,对外抢占先机

用友BIP

ceph数据重构原理

天翼云开发者社区

分布式系统 存储 硬盘故障

GPUStack正式发布: 为大模型而生的开源GPU集群管理器

GPUStack

AI 大模型 AIGC LLM GenAI

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