【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

区块链公链技术开发

西安链酷科技

构建多语言数字资产交易平台和秒合约系统:从概念到实现

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 公链开发 FT开发

动力底盘域的“一小步”,智能汽车的“一大步”

脑极体

AI

Penpad 生态资产 $PDD LaunchPad 在即,Season 2 规则解读

西柚子

System Dashboard Pro for Mac(专业系统监视器)v1.10.8激活版

影影绰绰一往直前

去中心化交易所搭建|区块链数字货币交易平台开发

西安链酷科技

去中心化交易所系统开发 dex交易所开发

2024-03-23:用go语言,一张桌子上总共有 n 个硬币 栈 。每个栈有 正整数 个带面值的硬币, 每一次操作中,你可以从任意一个栈的 顶部 取出 1 个硬币,从栈中移除它,并放入你的钱包里。

福大大架构师每日一题

福大大架构师每日一题

纠个错……OpenAI和马斯克的两个开源项目都叫Grok?

天马行空的大杂烩

程序员 开源项目 马斯克

MySQL之优化SELECT语句

百度搜索:蓝易云

MySQL Linux 运维 云服务器 select

Ghost Buster Pro for mac(苹果电脑内存清理专家)v3.0.0激活版

影影绰绰一往直前

DAPP钱包燃烧质押合约挖矿项目系统开发

l8l259l3365

关于 .NET Core 中的 Host

雄鹿 @

ASP.NET Core

Perfectly Clear Workbench for Mac(智能图像清晰修复软件)v4.6.0.2647永久激活版

影影绰绰一往直前

GameFi游戏NFT链游开发系统搭建技术

西安链酷科技

链游开发 区块链游戏开发

"数字货币市场回归价值导向:Somle预售事件的启示"

区块链软件开发推广运营

区块链浏览器 dapp开发 链游开发 NFT开发 公链开发

Segment Anything(SAM)的哪些后续方法,又快又好?

AI帅辉

深度学习 计算机视觉 图像分割

Wicrypt:赋有激励的 DePIN 互联网共享生态

股市老人

Python基本文件操作及os库

百度搜索:蓝易云

Python Linux 运维 云服务器 OS

定制Dapp开发:快速上线您的去中心化应用

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Ubuntu 20.04通过udev规则修改网卡名称(例如eth0)

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 udev

Swinsian for Mac(音乐播放器)v3.0Preview15永久激活版

影影绰绰一往直前

Privatus for Mac(网页缓存清理工具)v7.0.3激活版

影影绰绰一往直前

SponsorBlock for YouTube for Mac(跳过youtube赞助商广告)v5.5.9激活版

影影绰绰一往直前

DeFi/DAPP 质押挖矿系统技术开发

西安链酷科技

云算力挖矿源码 dap质押挖矿开发 云算力挖矿

公链系统开发全指南:从规划到实施,详解每个步骤

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

初级Go工程师训练营第0期总结

刘博

Go 极客时间 课程总结

Aiseesoft Mac Screen Recorder for Mac(屏幕录像截图工具)v2.2.26激活版

影影绰绰一往直前

Magic Disk Cleaner for Mac(磁盘垃圾清理工具)v2.7.1激活版

影影绰绰一往直前

交互数字人直播,一对一回复顾客问题!

青否数字人

数字人

Greenplum实用技巧

百度搜索:蓝易云

云计算 Linux 运维 greenplum 云服务器

《Java并发编程实战》PDF

程序员李木子

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