Building Quality JavaScript With Test-Driven Development

If you'd like me to present this workshop at your company, I'd love to hear from you!

Slides

Exercises

Setup Instructions

Abstract

Learning Test-Driven Development (TDD) is frustrating. The first couple tests feel strange - you wonder why you’re writing tests that fail on purpose. Before long, you find yourself behind schedule from spending so much time on tests. You abandon unit testing completely. You’ll write them after….if you find the time.

This workshop will ease the frustration of learning Test-Driven Development. We’ll discuss the fundamentals of TDD and work together to solve problems in a test-driven manner. You’ll build confidence in your ability to apply TDD in JavaScript with hands-on experience.

Topics and activities include:

  • Instruction and exercises that will familiarize you with Jest as a JavaScript test framework
  • An introduction to the fundamentals of TDD
  • An instructor-led demonstration of TDD in practice
  • A collaborative code kata to get a hands-on, practical introduction to TDD
  • A series of hands-on exercises writing test-driven JavaScript code
  • A discussion of best practices for keeping your JavaScript test-friendly

We’ll be using Jest to build quality into our JavaScript code from the start. No specific UI framework will be targeted in this workshop - we will focus on writing and testing pure JavaScript. The experience you gain will be applicable to any JavaScript-based app, regardless of your framework allegiance.

Participants should be able to read and write JavaScript, as no time will be spent on language details. General familiarity with writing unit tests in any language is required. Familiarity with Test-Driven Development is helpful but not required, and no TDD experience is necessary. No experience with Jest is necessary.

A laptop with the LTS version of NodeJS installed (currently 8.9.4) is required. The corresponding version of NPM (currently 5.6.0) is also required. Detailed setup instructions are here.