Setup and Teardown in QUnit with modules

If you're testing your javascript with QUnit, you'll probably run into the case where you need to initialize variables, objects, ... before every test. You'll want to run every test with the same baseline.
In NUnit, you can use the SetUp attribute for this. In QUnit, it's a little different, but nothing too hard.With the module function, you can group tests and have them run a function before starting each test. The module requires at least a string containing the name of the group, but can accept an object containing a setup and teardown property, which are both functions:

var tv;

module("Television channel tests", {
setup: function () { tv = new Television(); } });

test("When moving the channel up", function() {
tv.channelUp(); equal(tv.getChannel(), 2, "The channel must be two."); });

test("When moving the channel down", function() {
tv.channelDown(); equal(tv.getChannel(), 0, "The channel must be zero."); });

module("Television brand tests", {
setup: function () { tv = new Television("Sony"); } });

test("When requesting the brand", function() {
tv.channelDown(); equal(tv.brand, "Sony", "The brand must be Sony."); });

Just put the module before any tests you want to 'contain' in the module. Any tests after a new call to module will be seen as part of this new module. This is what you'll see as a result:If your interested in all the code, you can check out my BitBucket repository.