Keyboard

↓ ↑
move between the rows you can see
→
open a feature, then step into it
←
close a feature, or step out to the one above
Enter
go to the page in focus
Tab
the same rows, plus everything else on the page
/
search the whole report
m
open or close the navigation drawer
Esc
leave the search box, or close the drawer
?
this list

Reaches the converter for every cell of its type

All 3 scenarios hold

A static @TypeConverter method in the test class decides what a cell's text becomes. A table can then use the language of the domain, in place of programmer literals.

Three converters serve the tables below. Yes/No becomes a boolean. A number word becomes an integer. A day word becomes a date.

Each rule below keeps the conversion visible. Each table pairs the text of the cell with the value the test method receives, printed back as plain text. That column is a String, and no converter touches a String. The column therefore shows what the converter produced, and does not restate what the converter was given.

Every cell declared LocalDate goes through the converter. That holds whether or not the built-in conversion could have read the cell. Day words are the dates this converter knows. For any other text it calls the built-in conversion itself, and ISO text therefore still works.

That call is this converter's own choice. TableTest does not make it after the converter returns. The rule above shows what happens to a converter that does not make the call.

expected outcome broken scenario
ScenarioInput valueParameter type?Converted date as text?Date day of week?
Day wordyesterdayjava.time.LocalDate2025-06-06FRIDAY
Another day wordtomorrowjava.time.LocalDate2025-06-08SUNDAY
Unknown to it2024-02-29java.time.LocalDate2024-02-29THURSDAY