Ero sivun ”JUnit” versioiden välillä
[arvioimaton versio] | [arvioimaton versio] |
Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
Rivi 37: | Rivi 37: | ||
* <nowiki>https://www.theseus.fi/bitstream/handle/10024/118620/Haltiapuu_Inka.pdf?sequence=1</nowiki> |
* <nowiki>https://www.theseus.fi/bitstream/handle/10024/118620/Haltiapuu_Inka.pdf?sequence=1</nowiki> |
||
* <nowiki>https://ohjelmointi2.github.io/kalvot/yksikkotestaus.pdf</nowiki> |
* <nowiki>https://ohjelmointi2.github.io/kalvot/yksikkotestaus.pdf</nowiki> |
||
* {{cite book | last=Gulati | first=Shekhar | last2=Sharma | first2=Rahul | title=Java Unit Testing with JUnit 5 | publisher=[[Apress]] | publication-place=Berkeley, CA | year=2017 | isbn=978-1-4842-3014-5 | doi=10.1007/978-1-4842-3015-2}} |
|||
[[Luokka:Java]] |
[[Luokka:Java]] |
Versio 27. heinäkuuta 2023 kello 22.51
JUnit on Java-ohjelmointikielelle suunniteltu testauskehys, jonka avulla voidaan kirjoittaa ja ajaa yksikkötestejä sekä tarkastella testien tuloksia. Se on avoimen lähdekoodin yksikkötestauskirjasto, jolle löytyy tuki lähes kaikista ohjelmointiympäristöistä. JUnit kuuluu xUnit-testauskehysperheeseen, joka on kehittynyt Kent Beckin vuonna 1998 Smalltalkille suunnitellusta SUnitista. Nykyään XUnit-kehyksiä on olemassa useimmille ohjelmointikielille ja kehitysalustoille. Vuonna 2002 ensi kertaa julkaistu JUnit nousi nopeasti kehittäjien suosioon ja nykyään sen on todettu olevan lähes synonyymi automatisoidulle Java-yksikkötestaukselle. JUnit-kirjaston nykyinen versio on 5 (Jupiter).
JUnit on keskeisellä tavalla vaikuttanut testikeskeisen ohjelmistokehitystavan kehitykseen (engl. Test-driven development). Testivetoinen ohjelmistokehitys perustuu ohjelman rakentamiseen pieni osa kerrallaan samalla testaten. Testivetoisessa ohjelmistokehityksessä ohjelman yksittäistä osaa tarkasteleva automaattinen testi kirjoitetaan tyypillisesti koodia ennen.
JUnit rakenne
JUnit perustuu testimetodeita sisältäviin testiluokkiin, joista yksi tai useampia voidaan suorittaa kerralla. Jokaisen testimetodin tulos ilmaistaan testin suorittamisen jälkeen joko onnistuneena tai epäonnistuneena. Testiluokat nimetään yleensä sen luokan nimellä, johon testi liittyy ja loppuun lisätään sana "Test".
JUnit-kirjaston annotaatiot lisätään testeissä suoritettaviin metodeihin seuraavan mukaisesti:
- @BeforeEach –suoritetaan ennen jokaista testitapausta
- @BeforeClass –suoritetaan ennen luokan ensimmäistä testiä
- @AfterEach –suoritetaan jokaisen testitapauksen jälkeen
- @AfterClass – tehdään lopuksi, kun kaikki luokan testitapaukset suoritettu
- @Test –yksittäinen testitapaus
Before-metodeilla suoritetaan alustustoimenpiteitä, joko ennen jokaista luokan testitapausta tai ennen kunkin yksittäisen testin ajamista. Test-metodit suorittavat varsinaisen testauksen ja vertaamisen odotettuun arvoon. After-metodit vastaavat siivoustoimenpiteistä, ne suoritaan joko yksittäisen testitapauksen ajon jälkeen tai lopuksi, kun kaikki yksittäiset testitapaukset on läpikäyty.
JUnit-kirjaston assert-metodien avulla tarkastetaan testattavan koodin oikeanlainen toimivuus. AssertEquals-metodia käyttämällä varmistetaan, että sille annetut arvot vastaavat toisiaan. AssertEqualsille annetaan ensimmäiseksi parametriksi arvo, joka vastaa ohjelman toiminnassa oikeaa vastausta, toisena parametrina annetaan testattava arvo. Mikäli arvot eivät vastaa toisiaan, kyseinen testi on epäonnistunut.
Yhteensopivuus muihin työkaluihin
JUnit 5 sopii yhteen useiden alustojen kanssa. Tällaisia alustoja ovat esimerkiksi IDE (integrated development environments) ja CI (continuous integration).
Ant laajennus
Apache Ant on yksi monipuolisimmista rakentajista (build tool).Malline:Sfn Ant keskittyy build.xml
-tiedoston ympärille, jota käytetään projektin suorittamiseen tarvittavien tehtävien määrittämiseen.Malline:Sfn Apache Ivy on Ant laajennus, joka on luotu helpottamaan riippuvuuksien erottelua. Projektin riippuvuudet voidaan ilmoittaa ivy.xml
-tiedostossa. JUnit 5 voidaan liittää osaksi Ant ympäristöä määrittämällä JaCoCo (Java code coverage tools) ivy.xml
-tiedostolle. ivy.xml
voidaan tämän jälkeen konfiguroida java-platform-console
- ja junit- platform-runner
kanssa JUnit 5 käyttöön ottamiseksi.Malline:Sfn
Maven laajennus
Maven käyttää standardisoitua ja yhtenäistä lähestymistapaa rakennusprosessissa.Malline:Sfn Maven noudattaa riippuvuuksiensa hallinnassa "convention over configuration" -paradigmaa.Malline:Sfn Mavenia voidaan käyttää missä tahansa Java-projektissa.Malline:Sfn Se käyttää POM-mallia (Project Object Model), joka on XML pohjainen lähestymistapa projektin koontivaiheiden määrittämiseen.Malline:Sfn Mavenin toimimiseksi, täytyy Mavenin reitin olla rakennettu oikein. JUnit 5 voidaan liittää toimimaan osaksi Maven-ympäristöä käyttämällä jacoco-maven-plugin
-liitintä, joka tukee valmiita toimintoja JUnit 5 -testeissä.
Gradle laajennus
Gradle on rakentaja, joka lainaa monia toiminnallisuuksiaan edeltäjistään Ant ja Maven.Malline:Sfn Toisin kuin Ant ja Maven, jotka ovat XML-pohjaisia, Gradle vaatii Apache Groovy:n käyttöä, joka on Java-pohjainen ohjelmointikieli.Malline:Sfn Gradle noudattaa Mavenin "convention over configuration" -lähestymistapaa ja lisäksi samaa rakennetta Malline:Code- ja Malline:Code-hakemistoissa.Malline:Sfn JUnit 5 voidaan liittää toimimaan osaksi Gradle-ympäristöä käyttämällä Malline:Code-liitintä yhdessä JUnit 5 koontitiedoston tarjoaman alustalaajennuksen kanssa. Malline:Sfn
Lähteet
Tähän artikkeliin tai sen osaan on merkitty lähteitä, mutta niihin ei viitata. Älä poista mallinetta ennen kuin viitteet on lisätty. Voit auttaa Wikipediaa lisäämällä artikkelille asianmukaisia viitteitä. Lähteettömät tiedot voidaan kyseenalaistaa tai poistaa. |
- https://www.tutorialspoint.com/junit/junit_overview.htm
- https://junit.org/junit5/
- https://www.theseus.fi/bitstream/handle/10024/118620/Haltiapuu_Inka.pdf?sequence=1
- https://ohjelmointi2.github.io/kalvot/yksikkotestaus.pdf
- Gulati, Shekhar (2017). Java Unit Testing with JUnit 5. Apress. DOI:10.1007/978-1-4842-3015-2. ISBN 978-1-4842-3014-5.