-
- All Known Implementing Classes:
DisplayNameGenerator.IndicativeSentences
,DisplayNameGenerator.ReplaceUnderscores
,DisplayNameGenerator.Simple
,DisplayNameGenerator.Standard
@API(status=STABLE, since="5.7") public interface DisplayNameGenerator
DisplayNameGenerator
defines the SPI for generating display names programmatically.Display names are typically used for test reporting in IDEs and build tools and may contain spaces, special characters, and even emoji.
Concrete implementations must have a default constructor.
A
DisplayNameGenerator
can be configured globally for the entire test suite via the "junit.jupiter.displayname.generator.default" configuration parameter (see the User Guide for details) or locally for a test class via the@DisplayNameGeneration
annotation.Built-in Implementations
- Since:
- 5.4
- See Also:
@DisplayName
,@DisplayNameGeneration
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
DisplayNameGenerator.IndicativeSentences
DisplayNameGenerator
that generates complete sentences.static class
DisplayNameGenerator.ReplaceUnderscores
DisplayNameGenerator
that replaces underscores with spaces.static class
DisplayNameGenerator.Simple
SimpleDisplayNameGenerator
that removes trailing parentheses for methods with no parameters.static class
DisplayNameGenerator.Standard
StandardDisplayNameGenerator
.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_GENERATOR_PROPERTY_NAME
Property name used to set the default display name generator class name: "junit.jupiter.displayname.generator.default"
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
generateDisplayNameForClass(java.lang.Class<?> testClass)
Generate a display name for the given top-level orstatic
nested test class.java.lang.String
generateDisplayNameForMethod(java.lang.Class<?> testClass, java.lang.reflect.Method testMethod)
Generate a display name for the given method.java.lang.String
generateDisplayNameForNestedClass(java.lang.Class<?> nestedClass)
Generate a display name for the given@Nested
inner test class.static DisplayNameGenerator
getDisplayNameGenerator(java.lang.Class<?> generatorClass)
Return theDisplayNameGenerator
instance corresponding to the givenClass
.static java.lang.String
parameterTypesAsString(java.lang.reflect.Method method)
Generate a string representation of the formal parameters of the supplied method, consisting of the simple names of the parameter types, separated by commas, and enclosed in parentheses.
-
-
-
Field Detail
-
DEFAULT_GENERATOR_PROPERTY_NAME
@API(status=STABLE, since="5.9") static final java.lang.String DEFAULT_GENERATOR_PROPERTY_NAME
Property name used to set the default display name generator class name: "junit.jupiter.displayname.generator.default"Supported Values
Supported values include fully qualified class names for types that implement
DisplayNameGenerator
.If not specified, the default is
DisplayNameGenerator.Standard
.- Since:
- 5.5
- See Also:
- Constant Field Values
-
-
Method Detail
-
generateDisplayNameForClass
java.lang.String generateDisplayNameForClass(java.lang.Class<?> testClass)
Generate a display name for the given top-level orstatic
nested test class.If it returns
null
, the default display name generator will be used instead.- Parameters:
testClass
- the class to generate a name for; nevernull
- Returns:
- the display name for the class; never blank
-
generateDisplayNameForNestedClass
java.lang.String generateDisplayNameForNestedClass(java.lang.Class<?> nestedClass)
Generate a display name for the given@Nested
inner test class.If it returns
null
, the default display name generator will be used instead.- Parameters:
nestedClass
- the class to generate a name for; nevernull
- Returns:
- the display name for the nested class; never blank
-
generateDisplayNameForMethod
java.lang.String generateDisplayNameForMethod(java.lang.Class<?> testClass, java.lang.reflect.Method testMethod)
Generate a display name for the given method.If it returns
null
, the default display name generator will be used instead.- Parameters:
testClass
- the class the test method is invoked on; nevernull
testMethod
- method to generate a display name for; nevernull
- Returns:
- the display name for the test; never blank
-
parameterTypesAsString
static java.lang.String parameterTypesAsString(java.lang.reflect.Method method)
Generate a string representation of the formal parameters of the supplied method, consisting of the simple names of the parameter types, separated by commas, and enclosed in parentheses.- Parameters:
method
- the method from to extract the parameter types from; nevernull
- Returns:
- a string representation of all parameter types of the supplied
method or
"()"
if the method declares no parameters
-
getDisplayNameGenerator
static DisplayNameGenerator getDisplayNameGenerator(java.lang.Class<?> generatorClass)
Return theDisplayNameGenerator
instance corresponding to the givenClass
.- Parameters:
generatorClass
- the generator'sClass
; nevernull
, has to be aDisplayNameGenerator
implementation- Returns:
- a
DisplayNameGenerator
implementation instance
-
-