From 879c939bfcaf955aa77b032bf18566419dfcb448 Mon Sep 17 00:00:00 2001 From: Llewellyn Falco Date: Mon, 3 Mar 2025 13:06:33 -0800 Subject: [PATCH] - F better help messages Co-Authored-By: Jay Bazuzi --- .../org/approvaltests/namer/AttributeStackSelector.java | 7 +++++-- .../org/approvaltests/namer/JUnit5StackTraceNamerTest.java | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/approvaltests/src/main/java/org/approvaltests/namer/AttributeStackSelector.java b/approvaltests/src/main/java/org/approvaltests/namer/AttributeStackSelector.java index e9abc9da9..6838e7e08 100644 --- a/approvaltests/src/main/java/org/approvaltests/namer/AttributeStackSelector.java +++ b/approvaltests/src/main/java/org/approvaltests/namer/AttributeStackSelector.java @@ -132,8 +132,11 @@ private static void checkConditionsForAttribute(Class attr { if (!isDynamicWrapperPresent()) { - throw new FormattedException("When using dynamic tests and Approvals, you need to use %s instead.", - "org.approvaltests.integrations.junit5.JupiterApprovals.dynamicTest(String, Executable)"); + String helpMessage = "When using dynamic tests and Approvals, Instead use: \n" + + " org.approvaltests.integrations.junit5.JupiterApprovals.dynamicTest(String, Executable)\n" + + " More at: https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/docs/how_to/UseTestFactory.md"; + + throw new FormattedException(helpMessage); } } } diff --git a/approvaltests/src/test/java/org/approvaltests/namer/JUnit5StackTraceNamerTest.java b/approvaltests/src/test/java/org/approvaltests/namer/JUnit5StackTraceNamerTest.java index ab6b164fc..19979c36a 100644 --- a/approvaltests/src/test/java/org/approvaltests/namer/JUnit5StackTraceNamerTest.java +++ b/approvaltests/src/test/java/org/approvaltests/namer/JUnit5StackTraceNamerTest.java @@ -119,7 +119,9 @@ Collection testFactory2() } catch (RuntimeException e) { - String helpMessage = "When using dynamic tests and Approvals, you need to use org.approvaltests.integrations.junit5.JupiterApprovals.dynamicTest(String, Executable) instead."; + String helpMessage = "When using dynamic tests and Approvals, Instead use: \n" + + " org.approvaltests.integrations.junit5.JupiterApprovals.dynamicTest(String, Executable)\n" + + " More at: https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/docs/how_to/UseTestFactory.md"; assertEquals(helpMessage, e.getMessage()); } }));