Behavior Driven Education: A Story of Learning ROR
BDE:Behavior DrivenEducationA Story of Learning RORDaniel Levenson
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?!
DefinitionsTest 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-3Behavior 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
The hardest button tobuttonname the band?"Write the code you wish you had" - Cuke GodWhat to write.
How to streamline thattranslation● Capture client-desired functionality in stories● The base of the pyramid
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.
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
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
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
BDE Disadvantages● Cucumber setup? ○ bundle install cucumber● Table, Scenario Outlines, Hooks ○ tab bit more knowledge required to use these features, but not required
Unrelatedly, Thank You!● Dan Levenson● smartlogicsolutions.com