SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
BDE:
Behavior Driven
Education
A 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?!
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
Path to Rails Enlightenment
● Ruby

● MVC

● Object Relationships

● Testing

● Vim!
The hardest button to
button
name 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

Mais conteúdo relacionado

Mais procurados

Java User Groups in Austria (2013)
Java User Groups in Austria (2013)Java User Groups in Austria (2013)
Java User Groups in Austria (2013)
Peter Kofler
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
Peter Kofler
 

Mais procurados (20)

Java User Groups in Austria (2013)
Java User Groups in Austria (2013)Java User Groups in Austria (2013)
Java User Groups in Austria (2013)
 
Detangling Your JavaScript
Detangling Your JavaScriptDetangling Your JavaScript
Detangling Your JavaScript
 
What I learned interviewing for front-end developer roles
What I learned interviewing for front-end developer rolesWhat I learned interviewing for front-end developer roles
What I learned interviewing for front-end developer roles
 
GDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran CanariaGDCR15 in Las Palmas, Gran Canaria
GDCR15 in Las Palmas, Gran Canaria
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end Devs
 
En Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into IndustryEn Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into Industry
 
Bdd and Behat
Bdd and BehatBdd and Behat
Bdd and Behat
 
Pair programming- Mariusz Kozieł
Pair programming- Mariusz KoziełPair programming- Mariusz Kozieł
Pair programming- Mariusz Kozieł
 
Putting the D&D in TDD
Putting the D&D in TDDPutting the D&D in TDD
Putting the D&D in TDD
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
 
SpecBDD in PHP
SpecBDD in PHPSpecBDD in PHP
SpecBDD in PHP
 
Clojure with panama
Clojure with panamaClojure with panama
Clojure with panama
 
Code Dojo
Code DojoCode Dojo
Code Dojo
 
Interop with c in clojure
Interop with c in clojureInterop with c in clojure
Interop with c in clojure
 
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
 
Using FXML on Clojure
Using FXML on ClojureUsing FXML on Clojure
Using FXML on Clojure
 
5 books for absolute programming beginners
5 books for absolute programming beginners5 books for absolute programming beginners
5 books for absolute programming beginners
 
Easy form creation and validation with Formjack
Easy form creation and validation with FormjackEasy form creation and validation with Formjack
Easy form creation and validation with Formjack
 
Std12 Chapter-7 Java Basics
Std12 Chapter-7 Java BasicsStd12 Chapter-7 Java Basics
Std12 Chapter-7 Java Basics
 
GSoC improvements on plonecli
GSoC improvements on plonecliGSoC improvements on plonecli
GSoC improvements on plonecli
 

Destaque

ActiveRecord Observers - RORLab Season 3-6
ActiveRecord Observers - RORLab Season 3-6ActiveRecord Observers - RORLab Season 3-6
ActiveRecord Observers - RORLab Season 3-6
창훈 정
 
Action View Form Helpers - 1, Season 2
Action View Form Helpers - 1, Season 2Action View Form Helpers - 1, Season 2
Action View Form Helpers - 1, Season 2
RORLAB
 
HES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
HES2011 - joernchen - Ruby on Rails from a Code Auditor PerspectiveHES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
HES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
Hackito Ergo Sum
 
ActiveRecord Associations(1) - RORLab Season 3-7
ActiveRecord Associations(1) - RORLab Season 3-7ActiveRecord Associations(1) - RORLab Season 3-7
ActiveRecord Associations(1) - RORLab Season 3-7
창훈 정
 

Destaque (20)

iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data
 
Ralph and Wormald - Cutting Edge of NewMR 2015
Ralph and Wormald - Cutting Edge of NewMR 2015Ralph and Wormald - Cutting Edge of NewMR 2015
Ralph and Wormald - Cutting Edge of NewMR 2015
 
Rhodes in a nutshell : Jan, ROR MEETUP
Rhodes in a nutshell : Jan, ROR MEETUP Rhodes in a nutshell : Jan, ROR MEETUP
Rhodes in a nutshell : Jan, ROR MEETUP
 
Infinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran Burojevic
Infinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran BurojevicInfinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran Burojevic
Infinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran Burojevic
 
深入淺出RoR
深入淺出RoR深入淺出RoR
深入淺出RoR
 
Realm - Phoenix Mobile Festival
Realm - Phoenix Mobile FestivalRealm - Phoenix Mobile Festival
Realm - Phoenix Mobile Festival
 
Swift opensourcecommunity
Swift opensourcecommunitySwift opensourcecommunity
Swift opensourcecommunity
 
Fast and Fun Audio in Swift - Swift Language User Group
Fast and Fun Audio in Swift - Swift Language User GroupFast and Fun Audio in Swift - Swift Language User Group
Fast and Fun Audio in Swift - Swift Language User Group
 
ActiveRecord Observers - RORLab Season 3-6
ActiveRecord Observers - RORLab Season 3-6ActiveRecord Observers - RORLab Season 3-6
ActiveRecord Observers - RORLab Season 3-6
 
Action View Form Helpers - 1, Season 2
Action View Form Helpers - 1, Season 2Action View Form Helpers - 1, Season 2
Action View Form Helpers - 1, Season 2
 
ActiveRecord Validations, Season 2
ActiveRecord Validations, Season 2ActiveRecord Validations, Season 2
ActiveRecord Validations, Season 2
 
Develop with Swift
Develop with SwiftDevelop with Swift
Develop with Swift
 
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
Training on iOS app development - Samesh Swongamikha & Neetin SharmaTraining on iOS app development - Samesh Swongamikha & Neetin Sharma
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOS
 
HES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
HES2011 - joernchen - Ruby on Rails from a Code Auditor PerspectiveHES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
HES2011 - joernchen - Ruby on Rails from a Code Auditor Perspective
 
ActiveRecord Associations(1) - RORLab Season 3-7
ActiveRecord Associations(1) - RORLab Season 3-7ActiveRecord Associations(1) - RORLab Season 3-7
ActiveRecord Associations(1) - RORLab Season 3-7
 
Sima Vasa - Cutting Edge of NewMR 2015
Sima Vasa - Cutting Edge of NewMR 2015Sima Vasa - Cutting Edge of NewMR 2015
Sima Vasa - Cutting Edge of NewMR 2015
 
Realm.oi new database for mobile apps
Realm.oi new database for mobile appsRealm.oi new database for mobile apps
Realm.oi new database for mobile apps
 
Dreamorbit Ruby on Rails offerings
Dreamorbit Ruby on Rails offeringsDreamorbit Ruby on Rails offerings
Dreamorbit Ruby on Rails offerings
 
Intro ror
Intro rorIntro ror
Intro ror
 

Semelhante a Behavior Driven Education: A Story of Learning ROR

Semelhante a Behavior Driven Education: A Story of Learning ROR (20)

TDD in Python With Pytest
TDD in Python With PytestTDD in Python With Pytest
TDD in Python With Pytest
 
TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and Gomega
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
Developing Better Software
Developing Better SoftwareDeveloping Better Software
Developing Better Software
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHP
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Test-Driven Development.pptx
Test-Driven Development.pptxTest-Driven Development.pptx
Test-Driven Development.pptx
 
Introduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debuggerIntroduction of Tools for providing rich user experience in debugger
Introduction of Tools for providing rich user experience in debugger
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5Test Driven Development in AEM/CQ5
Test Driven Development in AEM/CQ5
 
WTF is TDD
WTF is TDDWTF is TDD
WTF is TDD
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Tdd!
Tdd!Tdd!
Tdd!
 
Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
 

Mais de SmartLogic

How SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan IvovichHow SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan Ivovich
SmartLogic
 

Mais de SmartLogic (20)

Writing Game Servers with Elixir
Writing Game Servers with ElixirWriting Game Servers with Elixir
Writing Game Servers with Elixir
 
All Aboard The Stateful Train
All Aboard The Stateful TrainAll Aboard The Stateful Train
All Aboard The Stateful Train
 
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan IvovichDC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
 
Monitoring Your Elixir Application with Prometheus
Monitoring Your Elixir Application with PrometheusMonitoring Your Elixir Application with Prometheus
Monitoring Your Elixir Application with Prometheus
 
Going Multi-Node
Going Multi-NodeGoing Multi-Node
Going Multi-Node
 
Kubernetes and docker
Kubernetes and dockerKubernetes and docker
Kubernetes and docker
 
Serializing Value Objects-Ara Hacopian
Serializing Value Objects-Ara HacopianSerializing Value Objects-Ara Hacopian
Serializing Value Objects-Ara Hacopian
 
Guide to food foraging by SmartLogic's Kei Ellerbrock
Guide to food foraging by SmartLogic's Kei EllerbrockGuide to food foraging by SmartLogic's Kei Ellerbrock
Guide to food foraging by SmartLogic's Kei Ellerbrock
 
Introduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogicIntroduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
 
How SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan IvovichHow SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan Ivovich
 
A Few Interesting Things in Apple's Swift Programming Language
A Few Interesting Things in Apple's Swift Programming LanguageA Few Interesting Things in Apple's Swift Programming Language
A Few Interesting Things in Apple's Swift Programming Language
 
Effective ActiveRecord
Effective ActiveRecordEffective ActiveRecord
Effective ActiveRecord
 
An Introduction to Reactive Cocoa
An Introduction to Reactive CocoaAn Introduction to Reactive Cocoa
An Introduction to Reactive Cocoa
 
iOS Development Methodology
iOS Development MethodologyiOS Development Methodology
iOS Development Methodology
 
CSS Preprocessors to the Rescue!
CSS Preprocessors to the Rescue!CSS Preprocessors to the Rescue!
CSS Preprocessors to the Rescue!
 
Deploying Rails Apps with Chef and Capistrano
 Deploying Rails Apps with Chef and Capistrano Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and Capistrano
 
From Slacker to Hacker, Practical Tips for Learning to Code
From Slacker to Hacker, Practical Tips for Learning to CodeFrom Slacker to Hacker, Practical Tips for Learning to Code
From Slacker to Hacker, Practical Tips for Learning to Code
 
The Language of Abstraction in Software Development
The Language of Abstraction in Software DevelopmentThe Language of Abstraction in Software Development
The Language of Abstraction in Software Development
 
Android Testing: An Overview
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An Overview
 
Intro to DTCoreText: Moving Past UIWebView | iOS Development
Intro to DTCoreText: Moving Past UIWebView | iOS DevelopmentIntro to DTCoreText: Moving Past UIWebView | iOS Development
Intro to DTCoreText: Moving Past UIWebView | iOS Development
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Behavior Driven Education: A Story of Learning ROR

  • 1. BDE: Behavior Driven Education A Story of Learning ROR Daniel Levenson
  • 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
  • 4. Path to Rails Enlightenment ● Ruby ● MVC ● Object Relationships ● Testing ● Vim!
  • 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
  • 15. Unrelatedly, Thank You! ● Dan Levenson ● smartlogicsolutions.com