Ero sivun ”JUnit” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
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

  • 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