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
分享到:
相关推荐
在Python中,有许多BDD框架可供选择,如Cucumber.py、behave和lettuce等。本篇文章将重点介绍Python BDD的基础知识,帮助初学者快速入门。 首先,了解BDD的核心理念至关重要。BDD强调的是从用户或利益相关者的视角...
7. **测试(Testing)**:Rails鼓励TDD(测试驱动开发),提供了集成的测试框架如Test::Unit、RSpec和Cucumber,可以编写单元测试、集成测试和功能测试,确保代码质量。 8. **Gemfile与Bundler**:Gemfile是Ruby项目...
该项目提供了一个简单的入门示例,展示了如何设置和运行Cucumber测试。以下是关键知识点的详细说明: 1. **Gherkin语法**:Gherkin是一种业务领域特定的语言,用于编写用户故事和验收规范。在本示例中,你会找到`....
"小Cucumber"这个标题可能是指一个轻量级的、面向初学者的编程教程或项目,其中"嫩Cucumber"可能暗示着这是一个针对新手程序员,尤其是儿童或青少年的入门级编程学习资源。"Bstr"可能是一个拼写错误或者缩写,如果是...
- **测试驱动开发(TDD)**:Ruby的RSpec和Cucumber等库提供了强大的测试支持,鼓励开发者采用TDD的方式编写代码。 - **Gem包管理**:Ruby的Gem系统允许开发者方便地安装、管理和分享第三方库,极大地丰富了Ruby...
BDD入门指南主要面向在大数据领域中工作的业务分析师、数据科学家和数据工程师。BDD,即行为驱动开发(Behavior-Driven Development),是一种敏捷软件开发的技术,它鼓励软件项目中的跨职能团队成员之间的协作。BDD...
光谱 Java的多彩BDD...例子Spectrum支持类似于和规范样式测试: @RunWith ( Spectrum . class)public class Specs {{ describe( " A list " , () - > { List< String> list = new ArrayList<> (); afterEach(list
- **Cucumber**:Cucumber 是一个用于编写用户故事的工具,它与 RSpec 结合使用时,可以帮助团队更好地理解业务需求并通过实例驱动开发(Example-Driven Development, EDD)来构建软件。 - **RSpec Mocks**:RSpec ...
2. Spring Boot入门:书中将介绍Spring Boot的基础知识,包括如何快速搭建Spring Boot项目,以及如何使用Spring Boot的起步依赖、自动配置等特性来简化开发流程。 3. RESTful服务实践:鉴于微服务之间主要通过HTTP...
基于Cucumber的OpenShift黑盒测试框架 入门 您可以在找到更多信息。 创建本地开发环境 如果尚未安装git,请安装git;如果尚未安装,请安装ruby 2.4+ git clone :openshift / verification-tests.git cd验证测试 ...
- 书中通过具体实例展示了如何利用RSpec和Cucumber等工具进行单元测试和集成测试,并介绍了持续集成的概念和实践方法。 7. **性能优化与部署** - 高效稳定的部署方案是生产环境中必不可少的一部分。 - 本书探讨...
描述中的“ruby on rails 有兴趣的可以看看”,暗示了这是一个关于学习或探索Ruby on Rails的内容,可能是书籍、教程或者是项目实例,适合对这个框架感兴趣的人群阅读。 标签中包含了“.net c# java ruby vb”,...
- **书籍**: 《The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends》虽然主要聚焦于RSpec,但也涵盖了Watir和自动化测试的最佳实践。 #### Ruby开源项目推荐 1. **forem**: - 一个...
它是初学者快速入门Selenium的好工具,可以通过简单的录制功能快速生成基本的测试脚本,但其功能相对较弱,不适合复杂的测试场景。 3. **Selenium Grid**:当测试需要在多台机器或多个浏览器上并行执行时,Selenium...