|This article needs additional citations for verification. (September 2011)|
|Some or all of this article's listed sources may not be reliable. (September 2011)|
|Developer(s)||Aslak Hellesøy, Joseph Wilk, Matt Wynne, Gregory Hnatiuk, Mike Sassak|
|Stable release||1.0.2 / July 17, 2011|
|Type||Behavior driven development framework / Test tool|
Cucumber is a tool for running automated acceptance tests written in a behavior-driven development (BDD) style. Cucumber is written in the Ruby programming language. Cucumber projects are available for other platforms beyond Ruby. Some use Ruby Cucumber with a bridge into the target language (e.g. cuke4php and cuke4lua). Others use the Gherkin parser but implement everything else in the target language. Cucumber allows the execution of feature documentation written in business-facing text.
A feature definition, with a single scenario:
Feature: Division In order to avoid silly mistakes Cashiers must be able to calculate a fraction Scenario: Regular numbers * I have entered 3 into the calculator * I have entered 2 into the calculator * I press divide * the result should be 1.5 on the screen
The execution of the test implicit in the feature definition above requires the definition, using the Ruby language, of a few "steps":
# encoding: utf-8 begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end require 'cucumber/formatter/unicode' $:.unshift(File.dirname(__FILE__) + '/../../lib') require 'calculator' Before do @calc = Calculator.new end After do end Given /I have entered (\d+) into the calculator/ do |n| @calc.push n.to_i end When /I press (\w+)/ do |op| @result = @calc.send op end Then /the result should be (.*) on the screen/ do |result| @result.should == result.to_f end
- "Aslak Hellesøy". Aslakhellesoy.com. Retrieved 2012-01-24.
- "Joseph Wilk | on AI, The Web, Usability, Testing & Software process". Blog.josephwilk.net. Retrieved 2012-01-24.
- "Tea-Driven Development". Blog.mattwynne.net. Retrieved 2012-01-24.
- "ghnatiuk's Profile". GitHub. Retrieved 2012-01-24.
- "msassak's Profile". GitHub. Retrieved 2012-01-24.
- "The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Retrieved 2012-01-24.
- "The Pragmatic Bookshelf | The RSpec Book". Pragprog.com. 2010-12-02. Retrieved 2012-01-24.
- Lawrence, Richard. "Cucumber". Retrieved 2012-04-16.
- aslakhellesoy (2012-01-15). "examples/i18n/en/features/division.feature at master from cucumber/cucumber". GitHub. Retrieved 2012-01-24.
- aslakhellesoy (2012-01-15). "examples/i18n/en/features/step_definitons/calculator_steps.rb at master from cucumber/cucumber". GitHub. Retrieved 2012-01-24.
- Cucumber project
- At the Forge - Cucumber, by Reuven M. Lerner in the Linux Journal
- Agile 2009 - Aslak Hellesoy - Cucumber test framework, podcast by Bob Payne with Aslak Hellesøy
- Cucumber: The Latest in Ruby Testing, by Mike Gunderloy
- Specflow, Cucumber in .NET
|This programming tool–related article is a stub. You can help Wikipedia by expanding it.|