JavaScript Test Driven Development

Contact Us for Dates
3 days practical workshop for up to 12 people.

Only £1185 per person

Contact us for Onsite Price

The days of writing spaghetti JavaScript should be behind us. JavaScript is a grown-up language now and lies at the heart of mobile-friendly HTML5-enabled Web applications. This course describes how you can apply Test Driven Development techniques to create robust, reliable, and performant web UIs using contemporary JavaScript tools and libraries.


This course is a mixture of lectures and hands on exercises designed to reinforce the topics learnt

Training Course Objectives

  • TDD techniques and principles
  • Contemporary testing frameworks (e.g. Jasmine, QUnit)
  • Test doubles and mocking
  • Testing Ajax
  • Testing Node.js

Training Course Prerequisites

  • Good working knowledge of JavaScript


Chapter 1 JavaScript essential techniques

  • Closures
  • Inheritance and prototypes
  • Properties
  • Namespaces
  • Encapsulation

Chapter 2 Test-Driven Development principles

  • Test, code, refactor, repeat
  • The benefits of TDD
  • The process of TDD

Chapter 3 Unit testing in JavaScript

  • Getting started with unit testing
  • Structure of a unit test
  • Setting up a test environment
  • Executing a test
  • Refactoring

Chapter 4 Dealing with browser inconsistencies

  • Anticipating browser differences
  • Detecting browser support
  • Object and feature checking
  • The role of Modernizr

Chapter 5 Testing DOM manipulation

  • What can you test with DOM? Testing UI components
  • Testing events and user interactions

Chapter 6 Test doubles and mocking frameworks

  • Managing dependencies
  • Defining test doubles
  • Stubs, mocks, dummies, and fakes
  • Tool support

Chapter 7 Testing Ajax-enabled web pages

  • Using Ajax manually
  • Using Ajax via jQuery
  • Testing GET and POST requests
  • Stubbing
  • Testing headers

Chapter 8 Testing Node.js at the server

  • Setting up Node.js
  • The role of unit testing with Node.js
  • Techniques for testing Node.js