Yksi ohjelmistokehityksen vaikeimmista ongelmista on nimeäminen. Merkittävien nimien luominen ohjelman perustekijöille, kuten luokille ja menetelmille, voi olla hankalaa. Nimeämisrajoitukset, kuten ei välilyöntejä, lisäävät tätä ongelmaa entisestään.

Nimeämisongelma jatkuu kaikilla ohjelmistokehityksen elinkaaren osa-alueilla, myös testauksessa. Tässä JUnit @DisplayName -merkinnästä on hyötyä.

Mikä on @DisplayName-merkintä?

Yhdellä menetelmällä voi olla useita testimenetelmiä, joista jokainen testaa tiettyä käyttäytymistä. Jos kuitenkin annat testausmenetelmille käyttäytymisnimiä, niistä voi tulla sanallisia ja vaikeasti luettavia.

@DisplayName-merkintä on JUnit-komponentti, jonka avulla voit luoda mukautettuja nimiä testiluokille ja -menetelmille. Näissä nimissä voi olla välilyöntejä, erikoismerkkejä ja jopa hymiöitä. @DisplayName-merkinnän pitäisi auttaa sinua luomaan kuvaavampia, merkityksellisempiä nimiä testiluokille ja -menetelmille.

@DisplayName-merkinnän käyttäminen

Jonkin sisällä JUnit testiluokka

, @DisplayName-merkintä näkyy luokan nimen yläpuolella tai juuri ennen menetelmän määritystä. @DisplayName-merkintä ottaa yhden argumentin (nimen). Tämä argumentti esiintyy myöhemmin testiraporteissa, mikä tekee testausdokumentaatiosta kuvaavampaa.

paketti näyttönimi;

tuonti org.junit.jupiter.api. Näyttönimi;
tuonti org.junit.jupiter.api. Testata;

@Näyttönimi("Testata luokkaaosoittamassaMitenthe @Näyttönimihuomautustoimii.&lainaus;)
luokkaaDisplayNameTest{
@Testata
@Näyttönimi("Testataan näyttönimi, joka sisältää erikoismerkkejä: °□°)╯")
mitätöntestDisplayNameWithSpecialCharacters(){}

@Testata
@Näyttönimi("Testataan näyttönimeä, joka sisältää välilyönnin")
mitätöntestDisplayNameWithSpaces(){}

@Testata
@Näyttönimi("Testataan emojin sisältävä näyttönimi: 😱")
mitätöntestDisplayNameWithEmoji(){}
}

Tämän Java-luokan suorittaminen luo seuraavan JUnit-yksikkötestiraportin:

Jokainen @DisplayName-merkintäargumentti korvaa vastaavan luokan tai menetelmän nimen JUnit-testiraportissa. @DisplayName-merkintä "Testiluokka, joka osoittaa, kuinka @DisplayName-merkintä toimii" on paljon ilmeisempi ja kattavampi kuin DisplayNameTest.

Mitä seuraavaksi testaamiseen?

@DisplayName-merkinnän käyttäminen parantaa varmasti yksikkötestidokumentaatiota. @DisplayName-merkintää lukuun ottamatta huomaat, että kaikki JUnit-yksikkötestit tarvitsevat yhden tai useamman väitteen. Väitteet ovat JUnit-yksikkötestien rakennuspalikoita, joten on hyvä opetella käyttämään niitä.