50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

户外LED广告屏的安装与维护指南

Dylan

商业 LED LED display LED显示屏 户外LED显示屏

AI口语机器人的运营推广

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

AI口语机器人的测试流程

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语口语

“RdbStore”上线开源鸿蒙社区 助力鸿蒙应用数据访问效率大幅提升

最新动态

显存也能叠叠乐,双 Intel Arc A770 显卡低成本部署 DeepSeek R1 32B 蒸馏模型体验

E科讯

魔搭×通义灵码:0代码基础、0门槛在线编程做应用

阿里巴巴云原生

阿里云 云原生 通义灵码

如何开始搭建一个交易所软件?从规划到上线的完整指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 交易所开发代币开发

国产堡垒机助力信创产业蓬勃发展

行云管家

网络安全 信创 国产化 国密

深度解析:通过 AIBrix 多节点部署 DeepSeek-R1 671B 模型

字节跳动开源

AIBrix 分布式推理 多节点部署 GPU调度 vLLM优化

魔搭×通义灵码:0代码基础、0门槛在线编程做应用

阿里云云效

阿里云 云原生 通义灵码

特斯拉、宇树、Figure AI 核心供应链企业梳理与商业化壁垒,「汇丰银行」人形机器人研报解读

机器人头条

科技 大模型 人形机器人 具身智能

【企业级文生视频】互动双语视频生成器闪亮登场 !

火山引擎开发者社区

Cloud Ace 宣布成为 Langfuse 亚太地区首个代理商,提供 LLM 全链路方案

Cloud Ace 云一

LLM LLMOps 生成式 AI 应用 Langfuse

无人值守收入核算,无需下班的“AI收入会计”

用友智能财务

AI 数字化 财务 会计

探秘京东外卖幕后:地图&轨迹技术探寻

京东科技开发者

AI 与 CI/CD 双轮驱动:接口自动化测试破局之道

智在碧得

AI 技术分享 智在碧得 碧桂园

阿里云服务器遭遇DDoS攻击有争议?

网络安全服务

CDN DDoS 阿里云服务器 高防IP DDoS 攻击

每月仅能使用80小时,ToDesk再度降低免费用户使用时长

科技热闻

单元化架构在字节跳动的落地实践

火山引擎开发者社区

DApp用户激励机制设计:从代币经济到行为心理学的深度解构

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

智能制造:数字工时解决方案

积木链小链

数字化 数字工厂 智能制造

深度解读「高盛」人形机器人最新研报:核心供应链企业梳理和投资分析(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

INFINI Labs 产品更新 - Coco AI – 增强 AI 搜索、API 管理与性能优化等

极限实验室

console Gateway easysearch CocoAI

企业自建DNS解析有什么利弊?(国科云)

防火墙后吃泡面

飞行中换引擎:长城汽车 toC 业务中台同城双活架构升级

火山引擎开发者社区

这款流行 AI 工具被盗用挖取加密货币,这些隐患你需要知道

阿里巴巴云原生

阿里云 云原生 Higress

产教融合、科教融汇激发世界级成果,西安交通大学鲲鹏昇腾科教创新孵化中心揭牌

极客天地

【前瞻技术布局】京东零售广告创意:引入场域目标的创意图片生成

京东科技开发者

【等保小知识】等级保护全称以及实施流程详解

行云管家

网络安全 等保

云效构建在线调试来啦!保留构建现场,高效排查构建问题

阿里巴巴云原生

阿里云 云原生

【Redis技术进阶之路】「原理分析系列开篇」揭秘分析客户端和服务端网络通信交互实现(服务端篇 - 命令执行过程)

码界西柚

redis RESP Redis 协议 redis 底层原理 通信模式

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