|
Boost : |
From: Ullrich Koethe (koethe_at_[hidden])
Date: 2000-12-07 18:03:14
Thomas Matelich wrote:
> I've just looked over unittest.h. It provides more structure than test_tools.hpp, a nice job of
> obtaining the minimal xUnit functionality. I think, considering boost's opinions of compiler
> support, the setjmp/longjmp and can't catch signals version should be able to be eliminated.
I don't see how the setjmp/longjmp version could be elimiated (it
probably needs some portability additions, though). The "can't-catch
variant" is present as a last resort for compilers that don't support a
mechanism to catch signals. I've found catching of signals very useful
to quickly locate out-of-bounds access to an array and the like. Without
the setjmp/longjmp, the test propgram would just crash without giving
further information about what happened.
> Here are the tests I would want to see in this tool:
> assert -- or should, accepts bool
This is provided by the current should().
> assertEquals -- with special overloads, esp. double w/ allowed error
> assertThrows -- perhaps templatized. I feel this is very
> important, especially for a library.
>
This can be added without problems. Currently, I'm doing
// emulate assertEquals()
should(int_result == 100);
double epsilon = 0.00001;
should(std::abs(double_result - 100.1) < epsilon);
and
// emulate assertThrows()
try
{
somethingThatThrows();
failTest("somethingThatThrows() failed to throw!");
}
catch(MyException & e) // other exceptions are not expected here
{
should(strcmp(e.what(), "my error message") == 0);
}
Of course, this could be further encapsulated. Up to now, I haven't felt
an urgent need to do so, but if "unittest.h" would be accepted into
boost, I certainly would be willing to consider this.
Ulli
-- ________________________________________________________________ | | | Ullrich Koethe Universität Hamburg / University of Hamburg | | FB Informatik / Dept. of Computer Science | | AB Kognitive Systeme / Cognitive Systems Group | | | | Phone: +49 (0)40 42883-2573 Vogt-Koelln-Str. 30 | | Fax: +49 (0)40 42883-2572 D - 22527 Hamburg | | Email: u.koethe_at_[hidden] Germany | | koethe_at_[hidden] | | WWW: http://kogs-www.informatik.uni-hamburg.de/~koethe/ | |________________________________________________________________|
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk