Improve test case error reporting
authorNiki Roo <niki@nikiroo.be>
Sat, 4 Mar 2017 20:27:57 +0000 (21:27 +0100)
committerNiki Roo <niki@nikiroo.be>
Sat, 4 Mar 2017 20:27:57 +0000 (21:27 +0100)
src/be/nikiroo/utils/test/TestCase.java

index b37ea987ffca27677a32eb5d31d05e2632974c52..429200b4ceb3d800cb4ace07215ee82cc700fc69 100644 (file)
@@ -15,6 +15,10 @@ abstract public class TestCase {
        class AssertException extends Exception {
                private static final long serialVersionUID = 1L;
 
+               public AssertException(String reason, Exception source) {
+                       super(reason, source);
+               }
+
                public AssertException(String reason) {
                        super(reason);
                }
@@ -121,14 +125,15 @@ abstract public class TestCase {
         */
        public void assertEquals(String errorMessage, Object expected, Object actual)
                        throws AssertException {
-
-               if (errorMessage == null) {
-                       errorMessage = generateAssertMessage(expected, actual);
-               }
-
                if ((expected == null && actual != null)
                                || (expected != null && !expected.equals(actual))) {
-                       throw new AssertException(errorMessage);
+                       if (errorMessage == null) {
+                               throw new AssertException(generateAssertMessage(expected,
+                                               actual));
+                       } else {
+                               throw new AssertException(errorMessage, new AssertException(
+                                               generateAssertMessage(expected, actual)));
+                       }
                }
        }
 
@@ -247,12 +252,16 @@ abstract public class TestCase {
        public void assertNotNull(String errorMessage, Object actual)
                        throws AssertException {
                if (actual == null) {
+                       String defaultReason = String.format("" //
+                                       + "Assertion failed!\n" //
+                                       + "Object should have been NULL: [%s]", actual);
+
                        if (errorMessage == null) {
-                               errorMessage = String.format("" //
-                                               + "Assertion failed!\n" //
-                                               + "Object should have been NULL: [%s]", actual);
+                               throw new AssertException(defaultReason);
+                       } else {
+                               throw new AssertException(errorMessage, new AssertException(
+                                               defaultReason));
                        }
-                       throw new AssertException(errorMessage);
                }
        }