Bird
Raised Fist0
JUnittesting~10 mins

@DisplayName for readable names in JUnit - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test demonstrates how to use @DisplayName in JUnit to give a readable name to a test method. It verifies that the addition of two numbers returns the correct result.

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

public class CalculatorTest {

    @Test
    @DisplayName("Adding two positive numbers should return their sum")
    void testAddition() {
        int a = 5;
        int b = 7;
        int result = a + b;
        assertEquals(12, result, "Sum should be 12");
    }
}
Execution Trace - 4 Steps
StepActionSystem StateAssertionResult
1Test runner starts and identifies test methods with @Test annotationJUnit test environment initialized, CalculatorTest class loaded—PASS
2Test runner reads @DisplayName annotation for testAddition methodTest method labeled as 'Adding two positive numbers should return their sum' in test report—PASS
3Test runner executes testAddition methodVariables a=5, b=7 initialized; addition performedassertEquals(12, result) verifies result is 12PASS
4Test runner reports test result with readable name from @DisplayNameTest report shows 'Adding two positive numbers should return their sum' as test name with status PASS—PASS
Failure Scenario
Failing Condition: The addition result is incorrect (e.g., result is not 12)
Execution Trace Quiz - 3 Questions
Test your understanding
What does the @DisplayName annotation do in this test?
ASkips the test during execution
BProvides a readable name for the test method in reports
CChanges the method name in the code
DRuns the test multiple times
Key Result
Using @DisplayName helps make test reports clearer and easier to understand by giving tests descriptive names instead of method names.

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