Asserting That A Function Throws Exceptions With Qunit
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"