@Target({ANNOTATION_TYPE,METHOD})
@Retention(RUNTIME)
@Documented
@API(status=EXPERIMENTAL,
since="5.0")
@TestTemplate
@ExtendWith(org.junit.jupiter.params.ParameterizedTestExtension.class)
public @interface ParameterizedTest
@ParameterizedTest is used to signal that the annotated method is a
parameterized test method.
@ParameterizedTest methods must specify at least one
ArgumentsProvider via the
@ArgumentsSource
or a corresponding composed annotation. The provider is responsible for
providing a Stream of
Arguments that will be used to
invoke the @ParameterizedTest method. The method may have additional
parameters to be resolved by other
ParameterResolvers
at the end of the method's parameter list.
Method parameters may use
@ConvertWith
or a corresponding composed annotation to specify an explicit
ArgumentConverter.
@ParameterizedTest may also be used as a meta-annotation in order to
create a custom composed annotation that inherits the semantics
of @ParameterizedTest.
@ParameterizedTest methods must not be private or static.
ArgumentsSource,
CsvFileSource,
CsvSource,
EnumSource,
MethodSource,
ValueSource,
ConvertWith| Modifier and Type | Optional Element | Description |
|---|---|---|
java.lang.String |
name |
The name pattern to be used for invocations of the parameterized test;
never blank or consisting solely of whitespace.
|
java.lang.String name
You may use the following placeholders:
{index}: the current invocation index (1-based){arguments}: the complete, comma-separated arguments list{0}, {1}, etc.: an individual argumentFor the latter, you may use MessageFormat patterns
to customize formatting of values.
MessageFormat