Let's look at examples of the two most common interfaces for Mocha and Chai—BDD and TDD.
The Mocha BDD interface provides four main functional units:
before()
: This is a setup that occurs once before all the tests within a suite are run. Mocha also provides abeforeEach()
function that runs before each test in a suite.after()
: This is a setup that occurs once after all tests in a suite are run, with theafterEach()
alternative that runs before each test.describe()
: This specifies a test suite and can be nested within otherdescribe()
functions.it()
: This defines a single test function containing one or more assertions.
Chai's BDD style uses expect
or should
to make dot-notation assertion chains.
We can create a basic test file chapters/03/test/js/spec/bdd.spec.js
, which uses all of these components. We name the suite with describe()
, add/remove a function with before()
/after()
, and test it with an it()
specification declaration...