diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertNullAssertionsTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertNullAssertionsTests.java index e219e334218..54849ad6d3b 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertNullAssertionsTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertNullAssertionsTests.java @@ -11,8 +11,8 @@ package org.junit.jupiter.api; import static org.junit.jupiter.api.AssertionTestUtils.assertExpectedAndActualValues; -import static org.junit.jupiter.api.AssertionTestUtils.assertMessageEndsWith; -import static org.junit.jupiter.api.AssertionTestUtils.assertMessageStartsWith; +import static org.junit.jupiter.api.AssertionTestUtils.assertMessageEquals; +import static org.junit.jupiter.api.AssertionTestUtils.assertMessageMatches; import static org.junit.jupiter.api.AssertionTestUtils.expectAssertionFailedError; import static org.junit.jupiter.api.Assertions.assertNull; @@ -46,7 +46,7 @@ void assertNullWithNonNullObject() { expectAssertionFailedError(); } catch (AssertionFailedError ex) { - assertMessageEndsWith(ex, "expected: but was: "); + assertMessageEquals(ex, "expected: but was: "); assertExpectedAndActualValues(ex, null, "foo"); } } @@ -76,8 +76,7 @@ private void assertNullWithNonNullObjectWithNullStringReturnedFromToString(Suppl // Should look something like: // expected: but was: java.lang.String@264b3504 String prefix = (messageSupplier != null ? messageSupplier.get() + " ==> " : ""); - assertMessageStartsWith(ex, prefix + "expected: but was: java.lang.String@"); - assertMessageEndsWith(ex, ""); + assertMessageMatches(ex, prefix + "expected: but was: java\\.lang\\.String@.+"); assertExpectedAndActualValues(ex, null, actual); } } @@ -107,9 +106,8 @@ private void assertNullWithNonNullObjectWithNullReferenceReturnedFromToString(Su // Should look something like: // expected: but was: org.junit.jupiter.api.AssertNullAssertionsTests$NullToString@4e7912d8 String prefix = (messageSupplier != null ? messageSupplier.get() + " ==> " : ""); - assertMessageStartsWith(ex, - prefix + "expected: but was: org.junit.jupiter.api.AssertNullAssertionsTests$NullToString@"); - assertMessageEndsWith(ex, ""); + assertMessageMatches(ex, prefix + + "expected: but was: org\\.junit\\.jupiter\\.api\\.AssertNullAssertionsTests\\$NullToString@.+"); assertExpectedAndActualValues(ex, null, actual); } } @@ -121,8 +119,7 @@ void assertNullWithNonNullObjectAndMessage() { expectAssertionFailedError(); } catch (AssertionFailedError ex) { - assertMessageStartsWith(ex, "a message"); - assertMessageEndsWith(ex, "expected: but was: "); + assertMessageEquals(ex, "a message ==> expected: but was: "); assertExpectedAndActualValues(ex, null, "foo"); } } @@ -134,8 +131,7 @@ void assertNullWithNonNullObjectAndMessageSupplier() { expectAssertionFailedError(); } catch (AssertionFailedError ex) { - assertMessageStartsWith(ex, "test"); - assertMessageEndsWith(ex, "expected: but was: "); + assertMessageEquals(ex, "test ==> expected: but was: "); assertExpectedAndActualValues(ex, null, "foo"); } } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertionTestUtils.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertionTestUtils.java index a95c27212ab..a2cd16f6629 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertionTestUtils.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/AssertionTestUtils.java @@ -38,6 +38,13 @@ static void assertMessageEquals(Throwable ex, String msg) throws AssertionError } } + static void assertMessageMatches(Throwable ex, String regex) throws AssertionError { + if (!ex.getMessage().matches(regex)) { + throw new AssertionError("Exception message should match regular expression [" + regex + "], but was [" + + ex.getMessage() + "]."); + } + } + static void assertMessageStartsWith(Throwable ex, String msg) throws AssertionError { if (!ex.getMessage().startsWith(msg)) { throw new AssertionError(