In my last post I whinged about not liking jsUnit. I hoped I would find something better by looking at how the Prototype people test their code. Well, I was close: I remembered seeing some unit and functional testing in one of the JS packages I use, and it turned out to be Scriptaculous I was thinking about.
Here is jsUnit’s assert function:
function assert() {
_validateArguments(1, arguments);
var booleanValue = nonCommentArg(1, 1, arguments);
if (typeof(booleanValue) != 'boolean')
error('Bad argument to assert(boolean)');
_assert(commentArg(1, arguments), booleanValue === true, 'Call to assert(boolean) with false');
}
And here is Scriptaculous’s, from unittest.js:
assert: function(expression) {
var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
try { expression ? this.pass() :
this.fail(message); }
catch(e) { this.error(e); }
},
Ah, now that’s better. No oddly named functions, no vague multi-parameter calls, and no triple equal sign operators. Now, I don’t understand the unittest.js code yet, since I just saw it, but I have a feeling I can figure out what pass
, fail
, and error
do.
And how swell is using || in an assignment expression?
One thought on “I discover the Scriptaculous unit test code”
Comments are closed.