Organizing tests
QUnit provides two levels of grouping named after their respective function calls: module()
and test()
. The module
is like a general category under which the tests will be run; the test is actually a set of tests that takes a callback in which all of that test's specific
unit tests are run. We will group our tests by the chapter topic, placing the code in our test/test.js
file:
module('Selecting'); test('Child Selector', function() { // tests go here }); test('Attribute Selectors', function() { // tests go here }); module('Ajax');
It is not necessary to set up the file with the test structure, but it is good to have an overall structure in mind. Notice that our modules and tests do not need to be placed inside a $(document).ready()
call because QUnit, by default, waits until the window has loaded before it begins running the tests. With this very simple setup, loading the test HTML results in a page that looks like this:
Note that the module name is light blue and the test name is darker blue. Clicking on either one will expand the results of that set of tests, which are collapsed by default when all pass (or, in this case, when they have no tests). The Ajax module does not appear yet because we haven't written any tests for it.