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:332825
用户头像

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

关注

评论

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

终于懂了,RPC和OpenApi的区别

知识浅谈

RPC OpenAPI 9月月更

继GitHub的Copilot收费后,亚马逊推出了 CodeWhisperer,感觉不错哟!

Python猫

Python

阿里、字节、美团我都面了,offer也拿到了,全靠这份Java面试题!

收到请回复

Java 云计算 开源 架构 编程语言

从 ABAP Netweaver 到 ABAP Platform,我们一直在努力

汪子熙

SAP abap Netweaver 企业级应用 9月月更

Java程序员:为了跳槽刷完1000道真题,没想到老板直接给我升职了!

收到请回复

Java 云计算 开源 架构 编程语言

COSI:使用 Kubernetes API 管理对象存储

Java-fenn

Java

羊了个羊”通关修改思路

Java-fenn

Java

算法、算力、数据,AI落地现在还需要AI工程化

Java-fenn

Java

MyBatis-Plus(三、增删改查)

MySQL MyBatisPlus 9月月更

一个不错的开源项目风控引擎(Radar)

Java-fenn

Java

npm,pnpm,yarn,npx的那些事儿

Java-fenn

Java

整理的5种Linux 安装包管理工具

CTO技术共享

腾讯云数据库自研内核全新升级 新架构比原先性能提升20%

Java-fenn

Java

跟着卷卷龙一起学Camera--CameraService

卷卷龙

ISP 9月月更

阿里前端常见面试题总结

loveX001

JavaScript 前端

《Java面试考点大全》全网首发,带你摸熟20+互联网公司的面试考点!

收到请回复

Java 云计算 开源 架构 编程语言

Java进阶(二十三)java中long类型转换为int类型

No Silver Bullet

Java 类型转换 9月月更

Plato Labs推出的SeedX,公测15天570万美金净利润

鳄鱼视界

Cryptocell-712安全引擎概述

Java-fenn

Java

SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

Java快了!

数据库 spring-boot

向量数据库入坑:入门向量数据库 Milvus 的 Docker 工具镜像

Java-fenn

Java

pod(一):Kubernetes(k8s)创建pod的两种方式

Java-fenn

Java

只要32天就能拿下Offer?框架+性能优化+微服务+分布式,Java程序员必备!

收到请回复

Java 云计算 开源 架构 编程语言

Kubernetes 网络排查骨灰级

CTO技术共享

MySQL 如何查找删除重复行

CTO技术共享

Elasticsearch聚合学习之四:结果排序

程序员欣宸

elasticsearch 9月月更

【Vue3】 评论列表(简易)-- 思路与实现分析

Sam9029

JavaScript Vue Vue3 9月月更

户外LED广告屏如何才能保养好?

Dylan

LED显示屏 led显示屏厂家

基于.NET6的简单三层管理系统

Java-fenn

Java

Java 多线程:并发编程的三大特性

Java快了!

Java多线程

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