On Thu, Apr 07, 2005 at 11:23:59AM -0700, David Wheeler wrote:
> Greetings fellow Perlers,
>
> I'm pleased to announce the first alpha release of my port of
> TestSimple/More/Builder to JavaScript. You can download it from:
>
> http://www.justatheory.com/downloads/TestBuilder-0.01.tar.gz
Zee goggles, zey do nothing!!!
> Please feel free to give it a try and let me know what you think. You
> can see what the tests look like by loading the files in the tests/
> directory into your Web browser. This is my first stab at what I hope
> becomes a complete port. I could use some feedback/ideas on a number of
> outstanding issues:
>
> * Skip and Todo tests currently don't work because named blocks (e.g.,
> SKIP: and TODO:) are lexical in JavaScript. Therefore I cannot get at
> them from within a function called from within a block (at least not
> that I can tell). It might be that I need to just pass function
> references to skip() and todo(), instead. This is a rather different
> interface than that supported by Test::More, but it might work.
Not so different, that's what I would have done were it not for the fact
that it alters caller(). If Javascript has no such problems then do it,
but I suspect it does.
> Thoughts?
if( !condition ) {
skip(because, number);
}
else {
...test...
}
> * Currently, one must call Test._ending() to finish running tests. This
> is because there is no END block to grab on to in JavaScript.
> Suggestions for how to capture output and append the output of
> _finish() are welcome. It might work to have the onload event execute
> it, but then it will have to look for the proper context in which to
> append it (a <pre> tag, at this point).
Could object destruction be used somehow?
My only other note in glancing over this is to not make the mistake of
parroting eq*, ie. functions which are not tests. Proceed directly to
isDeeply() if possible. If its not possible, if the function prototypes
in Javascript won't allow something like isDeeply() then make the eq*
functions real tests such that later isDeeply() style diagnostics can be
added.