AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

Mac苹果电脑微信多开助手,拥有防撤回和微信多开的功能

你的猪会飞吗

微信多开和防撤回工具 微信多开助手 mac微信多开

Parallels Desktop虚拟机怎么完全卸载? PD虚拟机完全卸载方法

Rose

Logic Pro X插件在哪个位置?Logic Pro X最新中文直装版安装包

Rose

什么是DApp?DApp开发指南

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

数字卫星:「超实时仿真」实现处理器性能5倍提升

DevOps和数字孪生

数字孪生

IDC《中国网络安全软件技术发展路线图,2024》报告身份管理&移动安全推荐厂商

芯盾时代

身份安全 移动安全

Dropover for mac,最方便的文件移动方式

Rose

最新版photoshop 运行弹窗This non-genuine Adobe app has been disabled 详细的解决方法

Rose

数字货币交易所源码开发:场外(OTC)与币币交易所系统的构建指南

区块链软件开发推广运营

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

止步阿里一面。。。

王中阳Go

Go 面试 后端

1024大赛来袭,工业智能体开发等你来挑战!

Openlab_cosmoplat

人工智能

想给MAC电脑换个壁纸?苹果电脑各类高清壁纸资源分享

Rose

Lightroom Classic (lr) 安装后提示“内部出现错误,无法创建文件夹”的解决办法

Rose

PS笔刷集合:给大家推荐几款非常好用的PS笔刷

Rose

如何在 Mac 里装 Windows ?试试 Parallels Desktop虚拟机

Rose

学习CST入门教程的好去处:CST基础与中文教程资源

思茂信息

初学者 cst操作

HyperMesh基础教程:概述与有限元分析简介

智造软件

建模 仿真软件 Hypermesh 有限元技术 网格划分

“DataOps+大模型”——数造科技在大模型时代的数据开发创新探索

数造万象

人工智能 AI DataOps 大模型 #SQL

MacOS最强视频下载工具Downie 4

Rose

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