Cuke2Beer
-
Upload
declan-whelan -
Category
Technology
-
view
1.844 -
download
0
description
Transcript of Cuke2Beer
Specification
Tests Cases
Build
Test
How do we know we are done?
Deploy
•Long feedback loops•Keeping specs, system and test cases in sync•Silos of specification, build, test
•Reduces feedback loops
•Combines specifications, test cases &code
•Promotes collaboration
Executable Specification
Cucumber Organization
Features Step Definitions
System Under Test
Load
Match
Call
Feature FileFeature: Turn cucumber into beer As a cucumber presenter I want beer after my presentation So I can enjoy the rest of DemoCampGuelph
Scenario: Brydon buys Declan beer Given Brydon hosts DemoCampGuelph When Declan demos Cucumber Then Brydon should buy Declan 1 beer
Scenario: Ali buys Declan beer Given Ali hosts DemoCampGuelph When Declan demos Cucumber Then Ali should buy Declan 1 beer
Step DefinitionsGiven /^(.+) hosts/ do |host| @event = Event.new(host)end
When /^(.+) demos/ do |presenter| @event.add(presenter)end
Then /^(.+) should buy (.+) (\d+) (.*)$/ do |buyer, drinker, qty, item| perk = @event.perks[0]; perk.buyer.should == buyer; perk.receiver.should == drinker perk.quantity.should == quantity.to_i; perk.item.should == item end
System Under Testclass Event attr_reader :perks def initialize(host) @host = host; @perks = [] end def add(presenter) @perks.push Perk.new(@host, presenter, 1, "beer") end end
class Perk attr_reader :buyer, :receiver, :quantity, :item
def initialize(buyer, receiver, quantity, item) @buyer = buyer; @receiver = receiver @quantity = quantity; @item = item endend
Execution Scenario: Brydon buys Declan beer Given Brydon hosts DemoCampGuelph When Declan demos Cucumber Then Brydon should buy Declan 1 beer
Given /^(.+) hosts/ do |host| @event = Event.new(host)End
When /^(.+) demos/ do |presenter| @event.add(presenter)end
Then /^(.+) should buy (.+) (\d+) (.*)$/ do |buyer, drinker, qty, item| perk = @event.perks[0]; perk.buyer.should == buyer; perk.receiver.should == drinker perk.quantity.should == quantity.to_i; perk.item.should == item end
“Brydon”
Execution Scenario: Brydon buys Declan beer Given Brydon hosts DemoCampGuelph When Declan demos Cucumber Then Brydon should buy Declan 1 beer
Given /^(.+) hosts/ do |host| @event = Event.new(host)End
When /^(.+) demos/ do |presenter| @event.add(presenter)end
Then /^(.+) should buy (.+) (\d+) (.*)$/ do |buyer, drinker, qty, item| perk = @event.perks[0]; perk.buyer.should == buyer; perk.receiver.should == drinker perk.quantity.should == quantity.to_i; perk.item.should == item end
“Declan”
Execution Scenario: Brydon buys Declan beer Given Brydon hosts DemoCampGuelph When Declan demos Cucumber Then Brydon should buy Declan 1 beer
Given /^(.+) hosts/ do |host| @event = Event.new(host)End
When /^(.+) demos/ do |presenter| @event.add(presenter)end
Then /^(.+) should buy (.+) (\d+) (.*)$/ do |buyer, drinker, qty, item| perk = @event.perks[0]; perk.buyer.should == buyer; perk.receiver.should == drinker perk.quantity.should == quantity.to_i; perk.item.should == item end
Spoken Languages
English Arabic Bulgarian Catalan Welsh CzechDanish German Australian LOLCAT TexanSpanish Estonian Finnish French Hebrew
Croatian Hungarian Indonesian ItalianJapanese Korean Lithuanian LatvianDutch Norwegian Polish Portuguese
Romanian Romanian-diacriticalRussian Swedish Uzbek Vietnamese
Chinese-simplified Chinese-traditional
Cucumber Support
More Stuff
http://cukes.info/http://wiki.github.com/aslakhellesoy/cucumber
Declan Whelanhttp://dpwhelan.comhttp://twitter.com/dwhelan