Test-Driven JavaScript - (Hands-on)

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.


Familiarity with JavaScript, HTML, and DOM.

Course outline:

  • JavaScript essential techniques: Closures; Inheritance and prototypes; Properties; Namespaces; Encapsulation
  • Test-Driven Development principles: Test, code, refactor, repeat; The benefits of TDD; The process of TDD
  • Unit testing in JavaScript: Getting started with unit testing; Structure of a unit test; Setting up a test environment; Executing a test; Refactoring
  • Dealing with browser inconsistencies: Anticipating browser differences; Detecting browser support; Object and feature checking; The role of Modernizr
  • Testing DOM manipulation: What can you test with DOM? Testing UI components; Testing events and user interactions
  • Test doubles and mocking frameworks: Managing dependencies; Defining test doubles; Stubs, mocks, dummies, and fakes; Tool support
  • Testing Ajax-enabled web pages: Using Ajax manually; Using Ajax via jQuery; Testing GET and POST requests; Stubbing; Testing headers
  • Testing Node.js at the server: Setting up Node.js; The role of unit testing with Node.js; Techniques for testing Node.js

Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses

16. October
3 days
Classroom Virtual
18. September
3 days
Classroom Virtual
30. September
5 days
Classroom Virtual