Trying out some different styles
Let's look at examples of the two most common interfaces for Mocha and Chai—BDD and TDD.
Mocha and Chai BDD interfaces
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...