Chapter 17

Testing Modules and Applications


  • Running tests using node-tap
  • Using the Node assert module
  • Testing a sample module

To minimize the number of errors that users encounter while using your software, you must test the code you produce. You can do some of this testing manually, but optimally, you need a program that automates this process.

Automated testing is one of the most important practices that improve code quality. The goal is to have a series of tests that cover your entire code base, including the main and edge cases of your software. Some disciplines like TDD (test-driven development) even advocate that you write your tests, make them fail, and then implement the code that makes them work.

Whatever your approach, writing automated tests is a good investment. This chapter shows you how to do that in your Node modules and programs.


To create an automated test, you first need a way to define your tests. Then you need a tool that compiles and runs these tests, outputting the results.

Many such tools for Node.js and JavaScript exist. This chapter features one called node-tap. I picked it for several reasons: It’s simple, it easily supports asynchronous testing, and the output format is based on a standard.

You can install node-tap by including it inside the dev-dependencies section of your package.json file:

  "name": "MyApp",
  "version": "0.1.0",
  "devDependencies": {
    "tap": "*"

You then issue this command:

$ npm install ...

Get Professional Node.js: Building Javascript Based Scalable Software now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.