The tools of the trade
Let's start by taking a look at the various tools and libraries we will use to run and write our tests. There are three main concepts that we will need to cover before we can actually start writing real tests.
The first is a test runner, or the framework we use to run our suite of tests.
Most of the frameworks follow Test Driven Development (TDD), and their process relies on the following steps:
- It defines a unit test.
- It implements the unit.
- It executes the test and verifies that the test passes.
The second concept is the assertion library itself--the language we use to write our tests. A special version of using assertion language to design and build pieces of functionality incrementally, guided by an expected behavior, is Behavior Driven Development (BDD).
For both TDD and BDD, we can use the Mocha testing framework; however, we will be writing assertions using a special assertion library called Chai.js
.
Finally, we'll take a look at the idea of spies and stubs, which are...