cucumber入门例子

1、cucumber介绍
  cucumber是一款基于BDD的测试工具,它一方面通过文字描述测试行为,告诉开发和客户test case是如何进行的,另一方面通过关键字驱动和正则表达式匹配告诉scripts去做哪些事情,在运行自动化测试结束以后,会给出详细的report告 诉用户和测试人员,当前测试有哪些步骤,哪些场景,哪些行为得到了执行,多少成功,多少失败,总共耗时多少,甚至一个表格中的一个测试数据没有执行到,都 会以显著的颜色标注出test case的第几行出错,对应的script第几行出错。如此以来,无论是不懂代码的客户还是脚本编写人员都可以直观的寻找自己想要的结果。

  cucumber的官方网站是http://cukes.info/, 由于它的实现语言是ruby,所以它也是rubygems庞大家族的一份子,目前cucumber可以和诸多语言开发的程序进行工作,比如ruby,java,.net,flex等等开发的程序进行工作,并且支 持多达30多种语言的描述方式

2、cucumber安装
安装命令很简单:gem install cucumber(前提是已搭建好ruby环境)

3、例子
1)描述文件addition.feature
# language: zh-CN
功能:加法
  为了避免一些愚蠢的错误
  作为一个数学白痴
  我希望有人告诉我数字相加的结果

  场景: 两个数相加
    假如我已经在计算器里输入6
    而且我已经在计算器里输入7
    当我按相加按钮
    那么我应该在屏幕上看到的结果是13

  场景: 三个数相加
    假如我已经在计算器里输入6
    而且我已经在计算器里输入7
    而且我已经在计算器里输入1 
    当我按相加按钮
    那么我应该在屏幕上看到的结果是14


2)测试用例 calculator_steps.rb
# encoding: utf-8
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
require 'cucumber/formatter/unicode'

Before do
  @calc = Calculator.new
end

After do
end

Given /我已经在计算器里输入(\d+)/ do |n|
  @calc.push n.to_i
end

When /我按(.*)按钮/ do |op|
  if op == '相加'
    @result = @calc.send "add"
  end
end

Then /我应该在屏幕上看到的结果是(.*)/ do |result|
  @result.should == result.to_f
end


3)测试类 Calculator.rb
class Calculator
  def push(n)
    @args ||= []
    @args << n
  end
  
  def add
    @args.inject(0){|n,sum| sum+=n}
  end
end


4)执行
在cmd,以上文件目录下输入 cucumber addition.feature

你可能感兴趣的:(入门)