10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

Nautilus Chain 或成未来最好的链上隐私生态

西柚子

MySQL 服务器演化分析

Andy

springboot整合redis基础示例

(-0 , +0)

探索将大语言模型用作推荐系统

Baihai IDP

人工智能 推荐系统 企业号 5 月 PK 榜 大语言模型 LLMs

用 Tensorflow.js 做了一个动漫分类的功能(一)

北桥苏

JavaScript tensorflow

在GitHub被疯抢的这份阿里内部绝密Java面试八股文手册有多强?

Java你猿哥

Java MySQL 面试 JVM Java八股文

数说热点|社恐人群运动健身指南:不想去健身房,那就在家找面墙

MobTech袤博科技

简单聊聊MySQL索引优化的内容

(-0 , +0)

SpringBoot整合MybatisPlus基础教程

(-0 , +0)

springboot Mybatis Plus

Prompt工程师指南[应用篇]:Prompt应用、ChatGPT|Midjouney Prompt Engineering

汀丶人工智能

人工智能 自然语言处理 ChatGPT MidJourney prompt learning

Prompt工程师指南[高阶篇]:对抗性Prompting、主动prompt、ReAct、GraphPrompts、Multimodal CoT Prompting等

汀丶人工智能

人工智能 自然语言处理 深度学习 ChatGPT prompt learning

智慧工业园三维可视化安全生产管控系统

2D3D前端可视化开发

物联网 可视化 智慧园区 智慧化工园区 工业组态

eBPF动手实践系列二:构建基于纯C语言的eBPF项目

阿里云大数据AI技术

运维 C语言 ebpf 企业号 5 月 PK 榜

火山引擎DataTester:A/B实验平台数据集成技术分享

字节跳动数据平台

用 Tensorflow.js 做了一个动漫分类的功能(二)

北桥苏

JavaScript node.js tensorflow

如何将训练好的Python模型给JavaScript使用?

北桥苏

Python tensorflow AI

一把王者的时间,带你吃透Java面试八股文(2023最新整理)

Java你猿哥

Java 面试 微服务 Spring Boot mybatis

Java中常见集合类核心源码阅读

(-0 , +0)

Java 源码 集合

Java常见集合类型及其异同点,简单使用

(-0 , +0)

Java 集合

Tensorflow.js 对视频 / 直播人脸检测和特征点收集

北桥苏

JavaScript tensorflow

100万数据,如何快速的导入数据库?

NineData

数据库 开发者 数据导入 数据导出 NineData

关于Tensorflow!目标检测预训练模型的迁移学习

北桥苏

Python 深度学习 tensorflow 目标检测

如何用 ModelScope 实现 “AI 换脸” 视频

北桥苏

Python ModelScope

Java面试通关:阿里内部实战模拟面试精讲题库,竟被上传GitHub!

Java你猿哥

Java redis JVM java面试 Java基础知识点

MVP发布后,接下来该做什么?

敏捷开发

项目管理 Scrum MVP 最小可用产品

什么是策略模式?如何在Java项目中引入策略模式来优化代码结构

(-0 , +0)

火山引擎DataLeap数据调度实例的 DAG 优化方案 (一):问题与需求分析

字节跳动数据平台

数据平台 DAG DataLeap

javaweb脚手架springboot基础入门

(-0 , +0)

2023企业数智化财务创新峰会西安站圆满举办!

用友BIP

智能会计 价值财务

Windows10上CUDA9.0+CUDNN7.0.5的完美安装教程

北桥苏

深度学习 cuda cudnn

如何在 Windows10 下运行 Tensorflow 的目标检测?

北桥苏

深度学习 tensorflow 目标检测

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