[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: return values



Alex Shinn wrote:
What do the test-* assertions return?

As currently specified/implemented the result is undefined.

For test cases it can be very
useful to return a boolean value so that additional information can be
displayed when the test fails (or errors) unexpectedly.

But why should that be part of the test suite, rather than the
test runner?  I.e. I would *expect* a test runner to display "additional
information" when a test fails unexpectedly.

I can see when debugging either a test-suite or when trying to figure
out why a test failed you might want to print extra information.
But in that case you'd typically edit the test suite *temporarily*,
perhaps simplifing it, perhaps writing the state of variables, etc.
But that's debugging, not testing: you'd change it back when you've
figured it out.

The true values could be just #t or more descriptive symbols like 'pass, 'skip,
'fail, 'error.

Woould it be more useful to be able to test the most recent result.
E.g. rather than
  (if (eq? 'fail (test-assert ...))) ...
do:
  (test-assert ...)
  (if (eq? 'fail (test-result-last)) ...)
or something like that.

This has the advantage that you're not changing the existing test code;
just adding to it.
--
	--Per Bothner
per@xxxxxxxxxxx   http://per.bothner.com/