SlideShare a Scribd company logo
1 of 26
Download to read offline
NodeJS:
                         Writing Tests
                           A Beginners’ Guide
                   Docs: http://conancat.github.com/node-test-examples/
                  Github: https://github.com/conancat/node-test-examples



                                 Prepared by Grey Ang
                            @conancat | conancat@gmail.com



Wednesday, April 3, 13
Why write tests?



Wednesday, April 3, 13
Programming should be fun




Wednesday, April 3, 13
...and not
                         frustrating.



Wednesday, April 3, 13
The biggest joy in
                    programming is knowing
                      what you write does
                     what it intended to do,
                      and it doesn’t break
                         anything else.

Wednesday, April 3, 13
We all want a peace of
                      mind. Nirvana.




Wednesday, April 3, 13
...but we’re all lazy asses.
                         Trust me, I know. I am one too.




Wednesday, April 3, 13
Most common excuses to
                    not write tests
                         Laziness: “Writing tests is such a chore!”

                         Perceived busyness: “We have too many things to
                         do! We have other targets to hit!”

                         Overconfidence: “This function is really easy. I can
                         handle this.”

                         Ego: “Come on, real men doesn’t need to test their
                         code. It’ll definitely work. Trust me, I’m a
                         programmer.”


Wednesday, April 3, 13
What are the
                         consequences?



Wednesday, April 3, 13
96% of programmers do this to their
                         computers at least once a week.

                         (Okay, I made up that number.
                         But we all know how that feels.)




Wednesday, April 3, 13
Shit programmers deal with
                          Old code breaks when      Your code just broke other
                          you write new code        people’s code

                          Code that you wrote is    You spend 8 hours
                          slow as hell              debugging your code and
                                                    other people’s code
                          What you’ve done is not
                          what it supposed to do    ...to name a few.

Wednesday, April 3, 13
Whose fault is it?
              Yours, of course.




Wednesday, April 3, 13
If you’re a true lazy
                    programmer that doesn’t
                    wanna deal with all that
                        shit, write tests.
                         Mark my words. You won’t regret it.




Wednesday, April 3, 13
TDD & BDD
                         Two jargons you should know
                                since yesterday




Wednesday, April 3, 13
Test Driven
                    Development (TDD)
                   “...the developer writes an (initially failing)
                   automated test case that defines a desired
                   improvement or new function, then produces
                   the minimum amount of code to pass that test,
                   and finally refactors the new code to
                   acceptable standards.”

                   http://en.wikipedia.org/wiki/Test-driven_development


Wednesday, April 3, 13
Test Driven
                    Development (TDD)
                         Step 1: Write Test

                         Step 2: Run the test.
                         (It will fail, trust me. It’s okay. Take a deep breath. )

                         Step 3: Write the MINIMUM AMOUNT code to make
                         the test pass

                         Step 4: Test performance of code to optimal levels

                         Step 5: Celebrate that your code works wonderfully

                         Step 6: Write tests, rinse and repeat.

Wednesday, April 3, 13
Problems with traditional TDD
                         Test cases are written for the code -- not for the
                         manager, client, or the users of the system.

                         Code works with the test, code passes the test, but
                         code FAIL with user behavior or client requirements.

                         Traditional TDD is great for development. But if we
                         want code that WORKS, we need to involve the people
                         who spec the app.

                         Remember, code is written for the benefit of people!



Wednesday, April 3, 13
Introducing
                         Behavior Driven
                          Development
                         It’s just like TDD, really. Only better.




Wednesday, April 3, 13
Behavior Driven
                    Development (BDD)
                   “...combines the general techniques and
                   principles of TDD with ideas from domain-
                   driven design and object-oriented analysis
                   and design to provide software developers
                   and business analysts with shared tools and a
                   shared process to collaborate on software
                   development.”
                    http://en.wikipedia.org/wiki/Behavior-driven_development


Wednesday, April 3, 13
Behavior Driven
                    Development (BDD)
                         Step 1: Gather (and argue) requirements from the business side
                         or your users on what should be done

                         Step 2: Write test cases to meet the pre-defined business
                         requirements

                         Step 3: Write the MINIMUM AMOUNT code to make the test
                         pass

                         Step 4: Show it to your business partner

                         Step 5: ???

                         Step 6: Profit!

Wednesday, April 3, 13
“With great power,
                            comes great
                          responsibility.”
                           -- Uncle Ben, Spiderman




Wednesday, April 3, 13
You’re a web developer.
                              You make websites.

                         You’re Spiderman.
                         Remember, you work with machines AND people.
                                   You write code for people.




Wednesday, April 3, 13
4 Test Situations
                          that we’ll be doing today

                         Functional and module testing

                         Handling database calls

                         Testing REST API layers

                         Headless browser testing



Wednesday, April 3, 13
Best way to learn is by
                    doing it yourself.
                     So, lift your lazy ass and go clone this repo
                     and start playing around.

                     https://github.com/conancat/node-test-examples




Wednesday, April 3, 13
Need help? SHOUT!
                            Or you can just talk to me at
                         @conancat on Twitter, or email me at
                               conancat@gmail.com.




Wednesday, April 3, 13
Thanks for coming!
                             Be a good Spiderman!




Wednesday, April 3, 13

More Related Content

Similar to NodeJS: Writing tests -- A Beginners' Guide

10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programmingHugo Shi
 
Fault Tolerance 101
Fault Tolerance 101 Fault Tolerance 101
Fault Tolerance 101 C4Media
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developersMichael Marotta
 
Engineering culture
Engineering cultureEngineering culture
Engineering culturePamela Fox
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of CodeArun Saha
 
Selective 97 things every programmer should know
Selective 97 things every programmer should knowSelective 97 things every programmer should know
Selective 97 things every programmer should knowMuhammad Ahsan
 
97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknowREHAN KHAN
 
Road map to competitive programming
Road map to competitive programmingRoad map to competitive programming
Road map to competitive programmingTutort Academy
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsSteven Smith
 
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...RootedCON
 
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...apidays
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic RevisitedAdam Keys
 
Coding Camp Day 1 Presentation
Coding Camp Day 1 PresentationCoding Camp Day 1 Presentation
Coding Camp Day 1 PresentationAnnamarie Carlson
 
Software Debugging for High-altitude Balloons
Software Debugging for High-altitude BalloonsSoftware Debugging for High-altitude Balloons
Software Debugging for High-altitude Balloonsjgrahamc
 
The Data-First approach to Learning Coding 2.0
The Data-First approach to Learning Coding 2.0The Data-First approach to Learning Coding 2.0
The Data-First approach to Learning Coding 2.0Ato Mensah
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8Derek Jacoby
 

Similar to NodeJS: Writing tests -- A Beginners' Guide (20)

10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming
 
Fault Tolerance 101
Fault Tolerance 101 Fault Tolerance 101
Fault Tolerance 101
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Software development
Software developmentSoftware development
Software development
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Engineering culture
Engineering cultureEngineering culture
Engineering culture
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Selective 97 things every programmer should know
Selective 97 things every programmer should knowSelective 97 things every programmer should know
Selective 97 things every programmer should know
 
97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow97 thingseveryprogrammershouldknow
97 thingseveryprogrammershouldknow
 
Road map to competitive programming
Road map to competitive programmingRoad map to competitive programming
Road map to competitive programming
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
 
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
Coding Camp Day 1
Coding Camp Day 1Coding Camp Day 1
Coding Camp Day 1
 
Coding Camp Day 1 Presentation
Coding Camp Day 1 PresentationCoding Camp Day 1 Presentation
Coding Camp Day 1 Presentation
 
Software Debugging for High-altitude Balloons
Software Debugging for High-altitude BalloonsSoftware Debugging for High-altitude Balloons
Software Debugging for High-altitude Balloons
 
The Data-First approach to Learning Coding 2.0
The Data-First approach to Learning Coding 2.0The Data-First approach to Learning Coding 2.0
The Data-First approach to Learning Coding 2.0
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
When Tdd Goes Awry
When Tdd Goes AwryWhen Tdd Goes Awry
When Tdd Goes Awry
 

Recently uploaded

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
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 Processorsdebabhi2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Recently uploaded (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

NodeJS: Writing tests -- A Beginners' Guide

  • 1. NodeJS: Writing Tests A Beginners’ Guide Docs: http://conancat.github.com/node-test-examples/ Github: https://github.com/conancat/node-test-examples Prepared by Grey Ang @conancat | conancat@gmail.com Wednesday, April 3, 13
  • 3. Programming should be fun Wednesday, April 3, 13
  • 4. ...and not frustrating. Wednesday, April 3, 13
  • 5. The biggest joy in programming is knowing what you write does what it intended to do, and it doesn’t break anything else. Wednesday, April 3, 13
  • 6. We all want a peace of mind. Nirvana. Wednesday, April 3, 13
  • 7. ...but we’re all lazy asses. Trust me, I know. I am one too. Wednesday, April 3, 13
  • 8. Most common excuses to not write tests Laziness: “Writing tests is such a chore!” Perceived busyness: “We have too many things to do! We have other targets to hit!” Overconfidence: “This function is really easy. I can handle this.” Ego: “Come on, real men doesn’t need to test their code. It’ll definitely work. Trust me, I’m a programmer.” Wednesday, April 3, 13
  • 9. What are the consequences? Wednesday, April 3, 13
  • 10. 96% of programmers do this to their computers at least once a week. (Okay, I made up that number. But we all know how that feels.) Wednesday, April 3, 13
  • 11. Shit programmers deal with Old code breaks when Your code just broke other you write new code people’s code Code that you wrote is You spend 8 hours slow as hell debugging your code and other people’s code What you’ve done is not what it supposed to do ...to name a few. Wednesday, April 3, 13
  • 12. Whose fault is it? Yours, of course. Wednesday, April 3, 13
  • 13. If you’re a true lazy programmer that doesn’t wanna deal with all that shit, write tests. Mark my words. You won’t regret it. Wednesday, April 3, 13
  • 14. TDD & BDD Two jargons you should know since yesterday Wednesday, April 3, 13
  • 15. Test Driven Development (TDD) “...the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.” http://en.wikipedia.org/wiki/Test-driven_development Wednesday, April 3, 13
  • 16. Test Driven Development (TDD) Step 1: Write Test Step 2: Run the test. (It will fail, trust me. It’s okay. Take a deep breath. ) Step 3: Write the MINIMUM AMOUNT code to make the test pass Step 4: Test performance of code to optimal levels Step 5: Celebrate that your code works wonderfully Step 6: Write tests, rinse and repeat. Wednesday, April 3, 13
  • 17. Problems with traditional TDD Test cases are written for the code -- not for the manager, client, or the users of the system. Code works with the test, code passes the test, but code FAIL with user behavior or client requirements. Traditional TDD is great for development. But if we want code that WORKS, we need to involve the people who spec the app. Remember, code is written for the benefit of people! Wednesday, April 3, 13
  • 18. Introducing Behavior Driven Development It’s just like TDD, really. Only better. Wednesday, April 3, 13
  • 19. Behavior Driven Development (BDD) “...combines the general techniques and principles of TDD with ideas from domain- driven design and object-oriented analysis and design to provide software developers and business analysts with shared tools and a shared process to collaborate on software development.” http://en.wikipedia.org/wiki/Behavior-driven_development Wednesday, April 3, 13
  • 20. Behavior Driven Development (BDD) Step 1: Gather (and argue) requirements from the business side or your users on what should be done Step 2: Write test cases to meet the pre-defined business requirements Step 3: Write the MINIMUM AMOUNT code to make the test pass Step 4: Show it to your business partner Step 5: ??? Step 6: Profit! Wednesday, April 3, 13
  • 21. “With great power, comes great responsibility.” -- Uncle Ben, Spiderman Wednesday, April 3, 13
  • 22. You’re a web developer. You make websites. You’re Spiderman. Remember, you work with machines AND people. You write code for people. Wednesday, April 3, 13
  • 23. 4 Test Situations that we’ll be doing today Functional and module testing Handling database calls Testing REST API layers Headless browser testing Wednesday, April 3, 13
  • 24. Best way to learn is by doing it yourself. So, lift your lazy ass and go clone this repo and start playing around. https://github.com/conancat/node-test-examples Wednesday, April 3, 13
  • 25. Need help? SHOUT! Or you can just talk to me at @conancat on Twitter, or email me at conancat@gmail.com. Wednesday, April 3, 13
  • 26. Thanks for coming! Be a good Spiderman! Wednesday, April 3, 13