2. DISCLAIMER
● This presentation is most likely not going to
teach you anything new
● overview and reflection of my experience
learning web development
○ maybe some useful take home messages?!
3. Definitions
Test Driven Development (TDD):
(paraphrased from http://en.wikipedia.org/wiki/Test-driven_development)
1. Write a failing "automated unit test"
2. Write code to make this test past
3. Refactor - making sure that the test (and the rest of the suite) still passes
4. Repeat steps 1-3
Behavior Driven Development (BDD):
(paraphrased from http://en.wikipedia.org/wiki/Test-driven_development)
"based on TDD"
- greater emphasis on domain driven design
- keyword: outside-in development
5. The hardest button to
button
name the band?
"Write the code you wish you had"
- Cuke God
What to write.
6. How to streamline that
translation
● Capture client-desired functionality in stories
● The base of the pyramid
7.
8. Pivotal Tracker
● Scenarios as use cases
○ Clients (sometime) know what they want, devs got to
know possible 'points of entry'
● Why implementing in the first place
○ In order to ...
● I am not good at remembering things,
○ pivotal is.
9. Behavior Driven Education
● loose definition: The process of learning
ROR (or any other high-level testable
language) through 'outside-in' integration
testing
● one clear implementation of BDE:
○ 'Starting with Cucumber'
10. Cucumber Workflow
● Outside-In Cucumber Workflow
○ create feature file
■ touch features/viewing_career_matches.feature
○ write some/all of the English language Gherkin statements that are necessary to 'do' the
feature
○ watch them turn orange!
■ cucumber features/viewing_career_matches.feature
● Orange --> Gherkin steps are undefined = no matching step definition
○ write step definitions one at a time (for starters)
■ step definitions should include assertions
○ watch them turn turn red!
■ no 'code you wish you had'
○ start writing the 'code you wish you had'
11.
12.
13. BDE Advantages
● Start with what you know!
● english -> code, not 'what the hell does this
line do'
● bite-sized
● green is good
● instills importance of testing
14. BDE Disadvantages
● Cucumber setup?
○ bundle install cucumber
● Table, Scenario Outlines, Hooks
○ tab bit more knowledge required to use these features, but not required