cucumber and bdd
TRANSCRIPT
![Page 1: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/1.jpg)
Cucumber and BDDNashville Ruby on Rails meetup
November 19, 2009Josh Crews
![Page 2: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/2.jpg)
Behavior Driven Development (BDD)
first: describe what the software doessecond: write the code to fulfill it(behavior drives development)
![Page 3: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/3.jpg)
BDD
Separate software design (one job)fromwriting code (a different job)
![Page 4: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/4.jpg)
BDD - design example
Given I am a bureau owner When I go to the homepage And I am logged in When I go to the speakers page And I click on "Add a speaker" And I fill in "speaker_name" with "Tad" And I press "Create profile" Then I should see "Tad" And I should see "Exclusive with Steve's speakers"
![Page 5: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/5.jpg)
Cucumber
software for BDD that takes plain english,Ruby translations of plain english,and runs integration test/stories against your application
![Page 6: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/6.jpg)
Cucumber - step definition
Given /^I am a bureau owner$/ do bureau = Factory(:bureau, :name => "Steve's speakers") @user = Factory(:user, :bureau => bureau)end
![Page 7: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/7.jpg)
Cucumber’s sidekick: webrat
Cucumber reads the storyWebrat drives the browser
When /^I go to (.+)$/ do |page_name| visit path_to(page_name)end
![Page 8: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/8.jpg)
Cucumber benefits
Joy in programmingclears the mindcontrols feature-driftdefines mini-milestones and git commits
![Page 9: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/9.jpg)
Cucumber benefits
Leaves a trail of feature-still-works guaranteesEasy re-factor with confidence
![Page 11: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/11.jpg)
Cucumber: other
Not a direct replacement for Test::Unit, Shoulda, RspecCucumber can run integration tests on any application (different languages or frameworks)
![Page 12: Cucumber And Bdd](https://reader033.vdocument.in/reader033/viewer/2022061322/58f145571a28abef328b4597/html5/thumbnails/12.jpg)
Cucumber: Let’s use it!
End of presentation--now to the terminal.