Add parameterized module: JUnit 5 @ParameterizedTest argument sources, display names, and two real anti-pattern failures
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
Captured from a real `junit-platform-console-standalone --details=tree` run against
|
||||
ConvertWithTest, compiled and executed for real.
|
||||
|
||||
╷
|
||||
├─ JUnit Platform Suite ✔
|
||||
├─ JUnit Jupiter ✔
|
||||
│ └─ ConvertWithTest ✔
|
||||
│ └─ testDatesAreIn2023(LocalDate) ✔
|
||||
│ ├─ date "2023-01-01" should be in 2023 ✔
|
||||
│ ├─ date "2023-06-15" should be in 2023 ✔
|
||||
│ └─ date "2023-12-31" should be in 2023 ✔
|
||||
└─ JUnit Vintage ✔
|
||||
|
||||
Test run finished after 146 ms
|
||||
[ 3 tests successful ]
|
||||
[ 0 tests failed ]
|
||||
|
||||
The @ValueSource arguments are plain ISO-format date strings; @ConvertWith(DashDateConverter.class)
|
||||
is what turns each one into a real java.time.LocalDate before the test method ever sees it, via
|
||||
DashDateConverter's own SimpleArgumentConverter.convert() override. JUnit actually has an
|
||||
implicit String-to-LocalDate conversion for this exact ISO shape, so this particular example
|
||||
would work without @ConvertWith too -- it's shown here because the same mechanism is what you
|
||||
reach for once the source strings need a format or extra validation JUnit's implicit converters
|
||||
don't cover, and DashDateConverter.java is the smallest possible shape to build that converter
|
||||
in when the need arises.
|
||||
Reference in New Issue
Block a user