Skip to content Skip to sidebar Skip to footer

Asserting That A Function Throws Exceptions With Qunit

I am new to Qunit and unit testing. I am trying to figure out what and how to test the following function. It does not do much at the moment but I wanted to assert that if I pass

Solution 1:

A couple of things wrong, a working example is at http://jsfiddle.net/Z8QxA/1/

The main issue is that you are passing the wrong thing as the second argument to raises(). The second argument is used to verify that the correct Error has been thrown, so it either expects a regex, a constructor of the type of error, or a callback that allows you do your own verification.

So in your example, you were passing attrToggle as the type of error that would be thrown. Your code actually throws an Error type and so the check actually failed. Passing Error as the second argument works as you want:

test("a test", function () {
    raises(function () {
        attrToggle([], []);
    }, Error, "Must throw error to pass.");
});

Secondly, you don't need the throw keyword when calling attrToggle() inside raises().

Solution 2:

yup, you pretty much got it right. raises() expects a thrown error when you test a code.

Usually I use try-catch for my functions to catch incorrect argument types. I use raises() to test the throw. If I placed an incorrect value as an argument, and the test did not comply to raises() then something was not caught.

Post a Comment for "Asserting That A Function Throws Exceptions With Qunit"