Your SlideShare is downloading. ×
  • Like
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introduce you Cucumber architecture and how to use Cucumber

Introduce you Cucumber architecture and how to use Cucumber

Published in Technology , Self Improvement
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. What is Cucumber?Cucumber is a tool that executes plain-text functional descriptions asautomated tests.Here is an example:BDD: Behavior Driven Development
  • 2. Running test cases
  • 3. How Cucumber works: Gherkin• Gherkin is the language that Cucumber understands.• It is a Business Readable, Domain Specific Language that lets you describe software’s behaviour without detailing how that behaviour is implemented.• So everyone can write Gherkin.• Gherkin serves two purposes – documentation and automated tests. The third is a bonus feature – when it yells in red it’s talking to you, telling you what code you should write.
  • 4. Gherkin Example1: Feature: Some terse yet descriptive text of what is desired2: In order to realize a named business value3: As an explicit system actor4: I want to gain some beneficial outcome which furthers the goal5:6: Scenario: Some determinable business situation7: Given some precondition8: And some other precondition9: When some action by the actor10: And some other action11: And yet another action12: Then some testable outcome is achieved13: And something else we can check happens too14:15: Scenario: A different situation16: ...
  • 5. Gherkin Documents
  • 6. How Cucumber works: Backgrounder• Language: Ruby, etc.Gherkin:Scenario: Users can enter an invoice item . . . Then I enter a product quantity of 5Step definition:When /enter a product quantity of (d+)/ do |quantity| pending "TODO: Do we need to have a product code passed as well?"End
  • 7. How Cucumber works: Capybara• Capybara helps you test Rails and Rack applications by simulating how a real user would interact with your app.• It is agnostic about the driver running your tests and comes with Rack::Test and Selenium support built in.
  • 8. Capybara ExampleWhen /^I sign in$/ do within("#session") do fill_in Login’, with => fill_in Password’, with => password end click_link Sign inend
  • 9. Capybara DSL• Navigation: visit• Interact: attach_file, text, check, choose, click_link_or_button, click_button, click_link, field_labeled, fill_in, select, unselect, uncheck, click_on• Find: all, first, find, find_button, find_by_id, find_field, find_link• Query: has_content?, has_css?, has_no_content?, has_no_css?, has_no_xpath?, has_xpath?, has_link?, has_no_link?, has_button, has_no_button?, has_field?, has_no_field?, has_checked_field?, has_unchecked_field?, has_no_table?, has_table?, has_select?, has_no_select?, has_selector?, has_no_selector?, has_no_checked_field?, has_no_unchecked_field?• Debugging: save_page, save_and_open_page
  • 10. Capybara Drivers• RackTest – Default driver – Doesn’t support Javascript• Webkit – Uses QtWebKit to start a rendering engine process. – Execute Javascript• Selenium – Start a Firefox to test
  • 11. Cucumber Architecture Cucumber Gherkin Backgrounder Given When Then Ruby code Capybara DSL DriversNavigating Interaction Querying Finding Scoping Debugging RackTest Webkit Selenium Firefox …
  • 12. Install cucumber in Rails 2.3gem "capybara", "1.1.1"gem "cucumber", "1.1.0"gem "cucumber-rails", "0.3.2”$ script/generate cucumber --capybaracreate config/cucumber.yml #cucumber command paramscreate config/environments/cucumber.rb #cucumber rails envcreate script/cucumbercreate features/step_definitions #step definitionscreate features/step_definitions/web_steps.rb #generalstep definitionscreate features/support #cucumber configure filescreate features/support/paths.rb #cucumber path configurecreate features/support/env.rb #cucumber env configurecreate lib/tasks #cucumber rake taskscreate lib/tasks/cucumber.rake
  • 13. Write your first cucumber test caseIt’s really, really recommended that you write your features by hand – in collaborationwith your customer / business analyst / domain expert / interaction designer.However, to get you started you can use the feature generator to generate the firstfew features:$ script/generate feature Frooble name:string color:string description:textexists features/step_definitionscreate features/manage_froobles.feature #gherkin, user storiescreate features/step_definitions/frooble_steps.rb #ruby, step definitions
  • 14. How to use Cucumber?1. Describe behaviour in plain text2. Write a step definition in Ruby3. Run and watch it fail4. Write code to make the step pass5. Run again and see the step pass6. Repeat 2-5 until green like a cuke7. Repeat 1-6 until the money runs out
  • 15. More info?