From 41ba0f86001d9056843b4c85bbae216bc977920f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pralhad=E2=80=9D=20Hadimani?= Date: Sun, 29 Jan 2023 00:28:50 +0000 Subject: [PATCH] Code examples for - Parameterized tests with JUnit 5 --- .../src/test/java/source/assertj/AssertJTest.java | 9 ++++----- .../test/java/source/csv/file/CsvFileSourceTest.java | 11 +++++++++++ .../test/java/source/method/ExternalMethodSource.java | 2 +- .../java/source/method/ExternalMethodSourceTest.java | 2 +- .../src/test/java/source/method/MethodSourceTest.java | 4 ++-- .../src/test/resources/csv-file-source_attributes.csv | 3 +++ 6 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 core-java/junit5-parameterized-tests/src/test/resources/csv-file-source_attributes.csv diff --git a/core-java/junit5-parameterized-tests/src/test/java/source/assertj/AssertJTest.java b/core-java/junit5-parameterized-tests/src/test/java/source/assertj/AssertJTest.java index fedc0b4..c9abf81 100644 --- a/core-java/junit5-parameterized-tests/src/test/java/source/assertj/AssertJTest.java +++ b/core-java/junit5-parameterized-tests/src/test/java/source/assertj/AssertJTest.java @@ -11,18 +11,17 @@ import org.junit.jupiter.params.provider.MethodSource; public class AssertJTest { @ParameterizedTest - @MethodSource("checkNumber_args") + @MethodSource("checkNumberArgs") void checkNumber(int number, Consumer consumer) { consumer.accept(number); } - static Stream checkNumber_args() { - + static Stream checkNumberArgs() { + Consumer evenConsumer = i -> Assertions.assertThat(i % 2).isZero(); Consumer oddConsumer = i -> Assertions.assertThat(i % 2).isEqualTo(1); - return Stream.of(Arguments.of(2, evenConsumer), - Arguments.of(3, oddConsumer)); + return Stream.of(Arguments.of(2, evenConsumer), Arguments.of(3, oddConsumer)); } } diff --git a/core-java/junit5-parameterized-tests/src/test/java/source/csv/file/CsvFileSourceTest.java b/core-java/junit5-parameterized-tests/src/test/java/source/csv/file/CsvFileSourceTest.java index ea0a1d3..3c85441 100644 --- a/core-java/junit5-parameterized-tests/src/test/java/source/csv/file/CsvFileSourceTest.java +++ b/core-java/junit5-parameterized-tests/src/test/java/source/csv/file/CsvFileSourceTest.java @@ -13,4 +13,15 @@ public class CsvFileSourceTest { void checkCsvFileSource(int number, String expected) { assertEquals(StringUtils.equals(expected, "even") ? 0 : 1, number % 2); } + + // --------------------------------------------------------------------------- + + @ParameterizedTest + @CsvFileSource(files = "src/test/resources/csv-file-source_attributes.csv", + delimiterString = "|", + lineSeparator = "||", + numLinesToSkip = 1) + void checkCsvFileSourceAttributes(int number, String expected) { + assertEquals(StringUtils.equals(expected, "even") ? 0 : 1, number % 2); + } } diff --git a/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSource.java b/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSource.java index 6b258a8..e75378e 100644 --- a/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSource.java +++ b/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSource.java @@ -4,7 +4,7 @@ import java.util.stream.Stream; public class ExternalMethodSource { - static Stream checkExternalMethodSource_args() { + static Stream checkExternalMethodSourceArgs() { return Stream.of("a1", "b2"); } diff --git a/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSourceTest.java b/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSourceTest.java index eca1990..aabcb7b 100644 --- a/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSourceTest.java +++ b/core-java/junit5-parameterized-tests/src/test/java/source/method/ExternalMethodSourceTest.java @@ -10,7 +10,7 @@ public class ExternalMethodSourceTest { // Note: The test will try to load the external method @ParameterizedTest - @MethodSource("source.method.ExternalMethodSource#checkExternalMethodSource_args") + @MethodSource("source.method.ExternalMethodSource#checkExternalMethodSourceArgs") void checkExternalMethodSource(String word) { assertTrue(StringUtils.isAlphanumeric(word), "Supplied word is not alpha-numeric"); } diff --git a/core-java/junit5-parameterized-tests/src/test/java/source/method/MethodSourceTest.java b/core-java/junit5-parameterized-tests/src/test/java/source/method/MethodSourceTest.java index 3318f55..cd6b6cd 100644 --- a/core-java/junit5-parameterized-tests/src/test/java/source/method/MethodSourceTest.java +++ b/core-java/junit5-parameterized-tests/src/test/java/source/method/MethodSourceTest.java @@ -14,12 +14,12 @@ public class MethodSourceTest { // Note: The test will try to load the supplied method @ParameterizedTest - @MethodSource("checkExplicitMethodSource_args") + @MethodSource("checkExplicitMethodSourceArgs") void checkExplicitMethodSource(String word) { assertTrue(StringUtils.isAlphanumeric(word), "Supplied word is not alpha-numeric"); } - static Stream checkExplicitMethodSource_args() { + static Stream checkExplicitMethodSourceArgs() { return Stream.of("a1", "b2"); } diff --git a/core-java/junit5-parameterized-tests/src/test/resources/csv-file-source_attributes.csv b/core-java/junit5-parameterized-tests/src/test/resources/csv-file-source_attributes.csv new file mode 100644 index 0000000..df408d3 --- /dev/null +++ b/core-java/junit5-parameterized-tests/src/test/resources/csv-file-source_attributes.csv @@ -0,0 +1,3 @@ +|| NUMBER | ODD_EVEN || +|| 2 | even || +|| 3 | odd || \ No newline at end of file