·
66 commits
to main
since this release
Changed
- When both a
@TypeConverter-annotated method and non-annotated candidates match a target type, the annotated method is now selected instead of failing with "multiple type converters found" - Collection parameters must be declared using the interface types
List,Set, orMap; concrete types likeTreeSetorArrayListnow fail with a clear error instead of expanding value sets into scalars or failing obscurely at test invocation (custom converters can still produce concrete collection types) - Duplicate map keys (e.g.
[a: 1, a: 2]) now fail with a parse error naming the key, instead of silently keeping the last value; quoted and unquoted spellings of the same key count as duplicates
Fixed
- An empty value set (
{}) for an expandable parameter now fails with an error naming the column, instead of silently generating zero test invocations for the row - Very long cell values and comment lines (roughly 15k characters and up) no longer crash parsing with
StackOverflowError - A blank header cell now fails with a parse error naming the column, instead of a
NullPointerException - A table input that is empty or holds only blank lines and comments now fails with
TableTestParseExceptioninstead ofIllegalArgumentException - Table rows with missing or extra cells now fail with an error naming the offending row, instead of silently shifting values to the wrong parameters or misreading the first cell as a scenario name
- Type converter cycles (e.g. a public static method in the test class taking and returning the same type) now fail with a clear error instead of crashing the test with
StackOverflowError - The
@TypeConverterdeprecation warning is only emitted for methods actually selected as converters, once per method, instead of for every public static single-parameter method (includingmain) on every conversion - Cyclic meta-annotations on a parameter no longer crash
@ConvertWithdetection withStackOverflowError - Conversion failure messages now separate the searched converter locations with commas; also fixed a typo in the parameter-count error message