Et af de sværeste problemer i softwareudvikling er navngivning. Det kan være vanskeligt at skabe meningsfulde navne for de grundlæggende aspekter af et program, såsom klasser og metoder. Navngivningsbegrænsninger, såsom ingen mellemrum, forstærker dette problem yderligere.
Navngivningsproblemet fortsætter i alle aspekter af softwareudviklingens livscyklus, inklusive test. Det er her JUnit @DisplayName-annotationen bliver nyttig.
Hvad er @DisplayName-annotationen?
En enkelt metode kan have flere testmetoder, der hver tester en bestemt adfærd. Men hvis du tildeler adfærdsnavne til testmetoder, kan de blive ordrige og svære at læse.
@DisplayName-annotationen er en JUnit-komponent, der giver dig mulighed for at oprette brugerdefinerede navne til dine testklasser og -metoder. Disse navne kan have mellemrum, specialtegn og endda emojis. @DisplayName-annotationen skulle hjælpe dig med at skabe mere beskrivende, meningsfulde navne til testklasser og -metoder.
Sådan bruger du @DisplayName-annotationen
I en JUnit test klasse, vises @DisplayName-annotationen over klassenavnet eller lige før metodeerklæringen. @DisplayName-annotationen tager et enkelt argument (navnet). Dette argument dukker senere op i testrapporter, hvilket gør testdokumentationen mere beskrivende.
pakke displaynavn;
importere org.junit.jupiter.api. Displaynavn;
importere org.junit.jupiter.api. Prøve;@Visningsnavn("Prøve klassedemonstrererhvordandet @Vist navnanmærkningarbejder.")
klasseDisplaynavnTest{
@Prøve
@Visningsnavn("Test vist navn, der indeholder specialtegn: °□°)╯")
ugyldigtestDisplayNameWithSpecial Characters(){}@Prøve
@Visningsnavn("Test vist navn, der indeholder mellemrum")
ugyldigtestDisplayNameWithSpaces(){}
@Prøve
@Visningsnavn("Tester vist navn indeholdende emoji: 😱")
ugyldigtestDisplayNameWithEmoji(){}
}
Udførelse af denne Java-klasse genererer følgende JUnit-enhedstestrapport:
Hvert @DisplayName-annotationsargument erstatter dets respektive klasse- eller metodenavn i JUnit-testrapporten. @DisplayName-annotationen, "Testklasse, der demonstrerer, hvordan @DisplayName-annotationen virker" er meget mere udtryksfuld og omfattende end DisplayNameTest.
Hvad er det næste for test?
At vide, hvordan du bruger @DisplayName-annotationen, vil helt sikkert forbedre din enhedstestdokumentation. Bortset fra @DisplayName-annotationen, vil du opdage, at alle dine JUnit-enhedstest skal have en eller flere påstande. Påstande er byggestenene i JUnit-enhedstest, derfor er det godt at lære at bruge dem.