写点什么

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

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

关注

评论

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

火山引擎DataTester“智能发布”:覆盖产品研发、测试、上线全流程,一站式智能管理A/B实验

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

YOLOv8来啦!YOLO内卷期模型怎么选?9+款AI硬件如何快速部署?深度解析

飞桨PaddlePaddle

paddle yolo 飞桨

NFT铸造系统模式开发定制

开发微hkkf5566

共攀元宇宙新高峰,2月14日沈阳元宇宙产业峰会邀您携手领跑2023

华为云开发者联盟

华为云 元宇宙 企业号 2 月 PK 榜 华为云开发者联盟 VR开发

关于Zebec生态的改进提案,以及即将上线的 Nautilus 链

股市老人

如何通俗理解信创国产化是什么意思?有哪些系统?有什么意义?

行云管家

信创 堡垒机 国产操作系统

如何用一套代码运行跨多操作系统应用

HarmonyOS开发者

HarmonyOS

优化数仓业务视图:过滤条件传递

华为云开发者联盟

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

怎么正确使用 NPS ?用对了才事半功倍

鼎道智联

运营 用户体验 用户推荐

巧用Maya轴心操作小技巧,工作事半功倍!

3DCAT实时渲染

Maya,渲染 Autodesk Maya

利用混沌工程提高微服务的弹性

NGINX开源社区

nginx 微服务架构 性能 企业号 2 月 PK 榜

前端技术培训学习哪个机构好?

小谷哥

深圳双机热备软件厂商哪家好?咨询电话多少?

行云管家

高可用 系统故障 双机热备

ONES 通过国内最权威信息安全等级认证——等保三级

万事ONES

关于Zebec生态的改进提案,即将上线的 Nautilus 链

西柚子

4-业务架构师眼中的需求是什么?

涛哥 数字产品和业务架构

业务架构 业务需求

BI 仪表板/数据可视化大屏最全面的设计流程梳理

搞大屏的小北

需求分析 业务场景分析 BI 分析工具 可视化数据 BI 报表

舞台LED显示屏使用禁忌

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

大数据培训学习怎么入门

小谷哥

干货分享 | 3个Zbrush实用减面工具分享

3DCAT实时渲染

3D渲染 3D模型

换个角度理解计算机网络,搭建计网知识框架

Java全栈架构师

程序员 面试 计算机网络 架构师 tcpip

君子动手不动口,FinClip 喊你做超级体验官啦!

FinClip

高性能图像处理的新利器——FlyCV

飞桨PaddlePaddle

paddle 飞桨 flycv

云端智创 | 聚焦云剪辑核心,一文详述智能生产全链路

阿里云CloudImagine

云计算 视频云 智能媒体生产

下一朵云,会是谁

ToB行业头条

前端线下面授培训机构的选择

小谷哥

基于流量双发平台的高效回归方案

网易云信

反垃圾 业务集群

Flutter 生成运行小程序的混合App开发实践

FinFish

flutter 移动开发 小程序技术 混合app

尚硅谷发布九章云台项目视频

小谷哥

干货分享 | UE游戏鼠标双击判定

3DCAT实时渲染

游戏开发 虚幻引擎 ue 游戏开发引擎

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