Annotation Type ParameterizedTest
-
@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.Such methods must not be
private
orstatic
.Argument Providers and Sources
@ParameterizedTest
methods must specify at least oneArgumentsProvider
via@ArgumentsSource
or a corresponding composed annotation (e.g.,@ValueSource
,@CsvSource
, etc.). The provider is responsible for providing aStream
ofArguments
that will be used to invoke the parameterized test method.Formal Parameter List
A
@ParameterizedTest
method may declare additional parameters at the end of the method's parameter list to be resolved by otherParameterResolvers
(e.g.,TestInfo
,TestReporter
, etc). Specifically, a parameterized test method must declare formal parameters according to the following rules.- Zero or more indexed arguments must be declared first.
- Zero or more aggregators must be declared next.
- Zero or more arguments supplied by other
ParameterResolver
implementations must be declared last.
In this context, an indexed argument is an argument for a given index in the
Arguments
provided by anArgumentsProvider
that is passed as an argument to the parameterized method at the same index in the method's formal parameter list. An aggregator is any parameter of typeArgumentsAccessor
or any parameter annotated with@AggregateWith
.Argument Conversion
Method parameters may be annotated with
@ConvertWith
or a corresponding composed annotation to specify an explicitArgumentConverter
. Otherwise, JUnit Jupiter will attempt to perform an implicit conversion to the target type automatically (see the User Guide for further details).Composed Annotations
@ParameterizedTest
may also be used as a meta-annotation in order to create a custom composed annotation that inherits the semantics of@ParameterizedTest
.- Since:
- 5.0
- See Also:
Arguments
,ArgumentsProvider
,ArgumentsSource
,CsvFileSource
,CsvSource
,EnumSource
,MethodSource
,ValueSource
,ArgumentsAccessor
,AggregateWith
,ArgumentConverter
,ConvertWith
-
-
Field Summary
Fields Modifier and Type Fields Description static String
ARGUMENTS_PLACEHOLDER
Placeholder for the complete, comma-separated arguments list of the current invocation of a@ParameterizedTest
method:{arguments}
static String
DEFAULT_DISPLAY_NAME
Default display name pattern for the current invocation of a@ParameterizedTest
method: "[{index}] {arguments}"static String
DISPLAY_NAME_PLACEHOLDER
static String
INDEX_PLACEHOLDER
Placeholder for the current invocation index of a@ParameterizedTest
method (1-based):{index}
-
-
-
-
DEFAULT_DISPLAY_NAME
@API(status=EXPERIMENTAL, since="5.3") static final String DEFAULT_DISPLAY_NAME
Default display name pattern for the current invocation of a@ParameterizedTest
method: "[{index}] {arguments}"Note that the default pattern does not include the display name of the
@ParameterizedTest
method.- Since:
- 5.3
- See Also:
name()
,DISPLAY_NAME_PLACEHOLDER
,INDEX_PLACEHOLDER
,ARGUMENTS_PLACEHOLDER
-
-
Element Detail
-
name
String name
The display name to be used for individual invocations of the parameterized test; never blank or consisting solely of whitespace.Defaults to
DEFAULT_DISPLAY_NAME
.Supported placeholders
DISPLAY_NAME_PLACEHOLDER
INDEX_PLACEHOLDER
ARGUMENTS_PLACEHOLDER
{0}
,{1}
, etc.: an individual argument (0-based)
For the latter, you may use
MessageFormat
patterns to customize formatting.- See Also:
MessageFormat
- Default:
- "[{index}] {arguments}"
-
-