用Cucumber进行行为驱动开发

原文请看我的英文博客:http://xizhizhu.blogspot.com/2009/11/behavior-driven-development-through.html

 

Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。


首先安装Cucumber添加环境变量
sudo aptitude install ruby rubygems1.8 rake
sudo gem install cucumber
PATH=$PATH:/var/lib/gems/1.8/bin

此时,如果执行命令“cucumber --version”能够看到输出Cucumber的版本号(目前最新版是0.4.4),则表明安装已经成功。


现在看看Cucumber中用到的术语

在Cucumber中,每个用例用一个feature表示 ,其基本格式如下:
Feature: 描述
  <story>

  <scenario 1>
  ...
  <scenario N>

其中,story对feature进行描述 ,其常用格式如下:
In order <目的>
As a <角色>
I want <功能描述>
So that <商业价值>

每个feature可由若干个scenario 构成,用以描述系统的行为 ,其常用格式如下:
Scenario Outline: 描述
  Given <条件>
  When <事件>
  Then <结果>
如果有多个条件等,可以用关键字And或But进行连接。每个步骤中,可选参数用"<>"标识。

scenario中的每个步骤都需要被定义 ,其格式如下:
关键字 /正则表达式/ do |参数名|
  代码
end
这里 的参数来自于正则表达式,均为字符串类型。


下面看看如何用Cucumber进行开发 (参考自这个 例子)。

首先编写feature ,并保存为feature/addition.feature文件:

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 |

然后用Ruby语言 定义scenario中的每个步骤 ,并保存为features/step_definitions/addition.rb文件:


最后 编写相应代码


进行测试
cucumber feature/addition.feature

如果得到类似于以下的结果,则表明代码无误:
1 scenario (1 passed)
4 steps (4 passed)
0m0.009s

否则,会得到红色提示,则需要修改相应代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值