14. Feature File Feature: 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
15. Step Definitions Given /^(.+) hosts/ do |host| @event = Event.new(host) end When/^(.+) demos/ do |presenter| @event.add(presenter) end Then/^(.+) should buy (.+) (+) (.*)$/ 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
16. System Under Test class Event attr_reader :perks def initialize(host) @host = host; @perks = [] end def add(presenter) @perks.pushPerk.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 end end
17. 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 “Brydon” Then/^(.+) should buy (.+) (+) (.*)$/ 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
18. 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 “Declan” Then/^(.+) should buy (.+) (+) (.*)$/ 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
19. 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 (.+) (+) (.*)$/ 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
20. Spoken Languages English Arabic Bulgarian Catalan Welsh Czech Danish German Australian LOLCAT Texan Spanish Estonian Finnish French Hebrew Croatian Hungarian Indonesian Italian Japanese Korean Lithuanian Latvian Dutch Norwegian Polish Portuguese Romanian Romanian-diacritical Russian Swedish Uzbek Vietnamese Chinese-simplified Chinese-traditional