Click here to load reader
Upload
smartlogic
View
166
Download
1
Embed Size (px)
DESCRIPTION
Dan Levenson walks us through his path to Rails Enlightenment
Citation preview
BDE:Behavior Driven EducationA Story of Learning ROR
Daniel 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 passes4. 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
Path to Rails Enlightenment● Ruby
● MVC
● Object Relationships
● Testing
● Vim!
The hardest button to buttonname the band?
"Write the code you wish you had"- Cuke God
What to write.
How to streamline that translation● 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