Bird
Raised Fist0
JUnittesting~5 mins

@DisplayName for readable names in JUnit

Choose your learning style10 modes available
Introduction

@DisplayName helps make test names easy to read and understand, like giving a clear label to a test.

When you want test names to be clear for anyone reading test reports.
When test method names are long or use code-style words that are hard to read.
When sharing test results with non-technical team members who need clear descriptions.
When you want to add spaces, special characters, or emojis to test names for clarity.
When organizing tests so reports show meaningful names instead of method names.
Syntax
JUnit
@DisplayName("Your readable test name here")
@Test
void testMethodName() {
    // test code
}

The annotation goes right above the test method.

The string inside @DisplayName can have spaces and symbols.

Examples
This test will show the name 'Check addition works correctly' in reports.
JUnit
@DisplayName("Check addition works correctly")
@Test
void testAdd() {
    // test code
}
You can use emojis or special characters to make test names stand out.
JUnit
@DisplayName("[x] Fails when input is null")
@Test
void testNullInput() {
    // test code
}
This makes the test name more descriptive than the method name.
JUnit
@DisplayName("Verify user login with valid credentials")
@Test
void userLoginTest() {
    // test code
}
Sample Program

This test class has two tests with clear, readable names shown in reports instead of method names.

JUnit
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

    @DisplayName("Add two positive numbers")
    @Test
    void addPositiveNumbers() {
        int result = 2 + 3;
        assertEquals(5, result);
    }

    @DisplayName("Subtract smaller from larger number")
    @Test
    void subtractNumbers() {
        int result = 5 - 2;
        assertEquals(3, result);
    }
}
OutputSuccess
Important Notes

Use @DisplayName to make test reports easier to understand for everyone.

Keep display names short but descriptive.

Remember to import org.junit.jupiter.api.DisplayName.

Summary

@DisplayName gives tests clear, readable names.

It helps both technical and non-technical people understand test results.

Use it above test methods with a descriptive string.

Practice

(1/5)
1. What is the main purpose of using @DisplayName in JUnit tests?
easy
A. To skip a test during execution
B. To change the test execution order
C. To give tests clear, readable names for better understanding
D. To add tags for filtering tests

Solution

  1. Step 1: Understand the role of @DisplayName

    @DisplayName is used to provide a human-friendly name to a test method instead of the method name.
  2. Step 2: Identify the benefit of readable names

    This helps both technical and non-technical people quickly understand what the test checks when reading reports.
  3. Final Answer:

    To give tests clear, readable names for better understanding -> Option C
  4. Quick Check:

    @DisplayName = readable test names [OK]
Hint: Remember: @DisplayName makes test names easy to read [OK]
Common Mistakes:
  • Thinking @DisplayName changes test order
  • Confusing @DisplayName with @Tag
  • Assuming @DisplayName skips tests
2. Which of the following is the correct syntax to use @DisplayName in a JUnit 5 test method?
easy
A. @DisplayName = "Test addition method" void testAdd() {}
B. @DisplayName("Test addition method") void testAdd() {}
C. @DisplayName: "Test addition method" void testAdd() {}
D. @DisplayName testAdd("Test addition method") {}

Solution

  1. Step 1: Recall correct annotation syntax

    Annotations in Java use @AnnotationName("string") before the method signature.
  2. Step 2: Match syntax with options

    @DisplayName("Test addition method") void testAdd() {} correctly uses @DisplayName with parentheses and a string argument before the method.
  3. Final Answer:

    @DisplayName("Test addition method") void testAdd() {} -> Option B
  4. Quick Check:

    @DisplayName("...") syntax is correct [OK]
Hint: Annotations need @ and parentheses with strings [OK]
Common Mistakes:
  • Using = or : instead of parentheses
  • Placing @DisplayName after method signature
  • Omitting quotes around the display name
3. Given the following test code, what will be the display name shown in the test report?
@Test
@DisplayName("Check if number is positive")
void isPositiveTest() {
    assertTrue(5 > 0);
}
medium
A. isPositiveTest
B. assertTrue(5 > 0)
C. void isPositiveTest()
D. Check if number is positive

Solution

  1. Step 1: Identify the effect of @DisplayName

    The @DisplayName annotation overrides the default method name shown in reports with the given string.
  2. Step 2: Check the string provided

    The string "Check if number is positive" will be shown instead of the method name.
  3. Final Answer:

    Check if number is positive -> Option D
  4. Quick Check:

    @DisplayName string replaces method name [OK]
Hint: Display name shows the annotation string, not method name [OK]
Common Mistakes:
  • Expecting method name instead of display name
  • Confusing method signature with display name
  • Thinking assertion text appears as name
4. Identify the error in the following JUnit 5 test code using @DisplayName:
@Test
@DisplayName(Test addition)
void testAdd() {
    assertEquals(4, 2 + 2);
}
medium
A. Missing quotes around the display name string
B. Missing @Test annotation
C. assertEquals arguments are reversed
D. Method name should be public

Solution

  1. Step 1: Check @DisplayName syntax

    The display name must be a string literal enclosed in double quotes.
  2. Step 2: Identify missing quotes

    Here, Test addition is not in quotes, causing a syntax error.
  3. Final Answer:

    Missing quotes around the display name string -> Option A
  4. Quick Check:

    @DisplayName needs quotes around text [OK]
Hint: Always put display names inside double quotes [OK]
Common Mistakes:
  • Omitting quotes around display name
  • Confusing @DisplayName with @Test
  • Thinking method must be public in JUnit 5
5. You want to write a JUnit 5 test method with a display name that includes quotes, like: Test "add" method works. Which is the correct way to write the @DisplayName annotation?
hard
A. @DisplayName("Test \"add\" method works")
B. @DisplayName('Test "add" method works')
C. @DisplayName("Test 'add' method works")
D. @DisplayName(Test "add" method works)

Solution

  1. Step 1: Understand string escaping in Java annotations

    Double quotes inside a Java string must be escaped with a backslash (\") to be valid.
  2. Step 2: Check each option for correct escaping

    @DisplayName("Test \"add\" method works") correctly escapes the inner quotes with \". @DisplayName('Test "add" method works') uses single quotes which are invalid for Java strings. @DisplayName("Test 'add' method works") uses single quotes inside double quotes which is valid but changes the quote style. @DisplayName(Test "add" method works) lacks quotes entirely, causing syntax error.
  3. Final Answer:

    @DisplayName("Test \"add\" method works") -> Option A
  4. Quick Check:

    Escape inner quotes with backslash in Java strings [OK]
Hint: Escape inner double quotes with \" inside @DisplayName [OK]
Common Mistakes:
  • Using single quotes for Java strings
  • Not escaping inner double quotes
  • Omitting quotes around the display name
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard