With the current implementation of CPPUNIT_ASSERT, if the expression throws an exception then the line number of the assertion is lost. Means you have to break out the debugger and step through to work out which unit test line is throwing the exception. CPPUNIT_ASSERT_NO_THROW doesn't quite cut it because although it'll catch the exception and report it nicely, it doesn't care whether the expression itself is true or false.
This patch changes CPPUNIT_ASSERT (in CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION mode at least) to test the expression as normal, but also to catch any exceptions that are thrown and report those nicely too.
Log in to post a comment.