Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c4faa6c

Browse files
authoredFeb 28, 2025··
Introduce support for parameterized classes (#4342)
This commit introduces @ParameterizedClass which builds on @ContainerTemplate and allows declaring a top-level or @nested test class as a parameterized container to be invoked multiple times with different arguments. The same @...Source annotations as for @ParameterizedTest may be used to provide arguments via constructor or field injection. Resolves #878.
1 parent 8cab7b8 commit c4faa6c

File tree

106 files changed

+4964
-1074
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+4964
-1074
lines changed
 

‎documentation/src/docs/asciidoc/link-attributes.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ endif::[]
185185
:params-provider-package: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/package-summary.html[org.junit.jupiter.params.provider]
186186
:AnnotationBasedArgumentConverter: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/converter/AnnotationBasedArgumentConverter.html[AnnotationBasedArgumentConverter]
187187
:AnnotationBasedArgumentsProvider: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/AnnotationBasedArgumentsProvider.html[AnnotationBasedArgumentsProvider]
188+
:AggregateWith: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/aggregator/AggregateWith.html[@AggregateWith]
189+
:Arguments: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/Arguments.html[Arguments]
190+
:ArgumentsProvider: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/ArgumentsProvider.html[ArgumentsProvider]
188191
:ArgumentsAccessor: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/aggregator/ArgumentsAccessor.html[ArgumentsAccessor]
189192
:ArgumentsAggregator: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/aggregator/ArgumentsAggregator.html[ArgumentsAggregator]
190193
:CsvArgumentsProvider: {junit5-repo}/blob/main/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvArgumentsProvider.java[CsvArgumentsProvider]
@@ -193,6 +196,8 @@ endif::[]
193196
:MethodSource: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/MethodSource.html[@MethodSource]
194197
:NullAndEmptySource: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/NullAndEmptySource.html[@NullAndEmptySource]
195198
:NullSource: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/provider/NullSource.html[@NullSource]
199+
:Parameter: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/Parameter.html[@Parameter]
200+
:ParameterizedClass: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/ParameterizedClass.html[@ParameterizedClass]
196201
:ParameterizedTest: {javadoc-root}/org.junit.jupiter.params/org/junit/jupiter/params/ParameterizedTest.html[@ParameterizedTest]
197202
:ValueArgumentsProvider: {junit5-repo}/blob/main/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ValueArgumentsProvider.java[ValueArgumentsProvider]
198203
// Jupiter Engine

‎documentation/src/docs/asciidoc/release-notes/release-notes-5.13.0-M1.adoc

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,14 @@ repository on GitHub.
5555
allow declaring a top-level or `@Nested` test class as a template to be invoked multiple
5656
times. This may be used, for example, to inject different parameters to be used by all
5757
tests in the container template class or to set up each invocation of the container
58-
template differently.
58+
template differently. Please refer to the
59+
<<../user-guide/index.adoc#writing-tests-container-templates, User Guide>> for details.
60+
* Introduce `@ParameterizedClass` concept that builds on `@ContainerTemplate` and allows
61+
declaring a top-level or `@Nested` test class as a parameterized test class to be
62+
invoked multiple times with different arguments. The same `@...Source` annotations as
63+
for `@ParameterizedTest` may be used to provide arguments via constructor or field
64+
injection. Please refer to the
65+
<<../user-guide/index.adoc#writing-tests-parameterized-tests, User Guide>> for details.
5966
* New `TestTemplateInvocationContext.prepareInvocation(ExtensionContext)` callback method
6067
allows preparing the `ExtensionContext` before the test template method is invoked. This
6168
may be used, for example, to store entries in its `Store` to benefit from its cleanup

0 commit comments

Comments
 (0)
Please sign in to comment.