Skip to content
Snippets Groups Projects
Commit 32b12021 authored by Erkki Kaila's avatar Erkki Kaila
Browse files

lisää sisältöä

parent 9690e634
Branches
No related tags found
No related merge requests found
# JUnitin käyttöönotto IntelliJ:ssä
Tarkastellaan seuraavaksi JUnit-kirjaston käyttöönottoa IntelliJ:ssä. Kirjasto otetaan käyttöön lisäämällä se Mavenin käyttämään `pom.xml`-tiedostoon, joten lisäys onnistuu melko samalla tavalla missä tahansa ohjelmointiympäristössä.
Tehdään tarkoitusta varten kokonaan uusi projekti.
Valitse IntelliJ:ssä **File --> New --> Project** ja anna projektin nimeksi esimerkiksi `TestausTesti`.
Muista valita kohtaan **Build system** valinnaksi **Maven**. Voit varmuudeksi tarkistaa [ohjeet](https://gitlab.utu.fi/TKO_2116/viikko-3/-/blob/main/ide-integraatio.md) viime kerralta.
## JUnit-kirjaston lisäys
JUnit otetaan käyttöön lisäämällä riippuvuus (eli *dependency*) Mavenin tiedostoon `pom.xml`.
Avaa tiedosto tuplaklikkaamalla sitä projekti-ikkunassa.
### Tapa 1: hyödynnä IntelliJ:n hakua
Klikkaa **ALT + Insert** ja valitse *Add dependency*.
Kirjoita kuvassa näkyvään hakukenttään `org.junit.jupiter` ja valitse kuvassa näkyvän valinnan (luultavasti ensimmäinen hakutulos) kohdalta linkki *Add*.
![dependency search](pic/dependency_search.png)
### Tapa 2: kirjoita riippuvuus suoraan pom.xml-tiedostoon
Vaihtoehtoisesti voit myös itse kirjoittaa alla olevan koodilisäyksen `pom.xml`-tiedostoon (tägin `<\properties>` jälkeen):
```xml
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.2</version>
</dependency>
</dependencies>
```
\ No newline at end of file
pic/dependency_search.png

11.4 KiB

# Viikko 4 - Yksikkötestaus
Systemaattinen ohjelmistojen testaaminen on tärkeä osa ohjelmistojen tuotantoa. Testaamista tehdään yleensä usealla eri tasolla - ohjelmistoista voidaan testata esimerkiksi mahdollisimman sujuvaa käyttökokemusta. Tärkeä osa ohjemistojen testaamista on ohjelmointivirheiden kitkeminen pois koodista. Suuremmissa ohjelmistoissa päästään kuitenkaan tuskin koskaan tilanteeseen, jossa koodi olisi täysin virheetöntä.
Yksikkötestaus on väline ohjelmointivirheiden löytämiseksi. Ideana on, että koodin testausta varten kirjoitetaan erillisiä testejä, jotka pyrkivät varmistamaan, että ohjelman eri osat tekevät sen mitä niiden pitäisikin tehdä. Kun ohjelmaan tehdään muutoksia, voidaan ajaa kaikki (tai ainakin muutoksiin liittyvät) testit uudestaan, jotta nähdään, etteivät muutokset hajoittaneet aikaisempaa toiminnallisuutta. Yleensä projekteissa pyritään siihen, että testien ajaminen on automatisoitu ja tehdään esimerkiksi aina ennen kuin tuotantoon paketoidaan uusi versio.
## JUnit - yksikkötestit Javalla
Javassa yleisimmin käytetty testauskirjasto on nimeltään JUnit. Kirjasto on vapaasti levitettävä, ja osa laajempaa, eri yhteyksissä käytettävää testauskirjastojen perhettä, jonka nimi on xUnit.
JUnit saadaan integroitua vaivattomasti kehitysprosessiin. Maven ajaa automaattisesti yksikkötestit osana projektin kokoamista (MVN Build), jos sellaiset on projektissa määritelty:
* validate: varmistaa, että kaikki tiedot ovat saatavilla ja oikein
* compile: käännä lähdekoodi
* **test-compile: käännä testauskoodi**
* **test: suorita yksikkötestit**
* package: paketoi ohjelma, esim. .jar -paketiksi
* jne.
JUnit-testit ovat Java-ohjelmia. Yleensä testit rakennetaan niin, että jokaista testattavaa luokkaa kohti on oma testiluokkansa (nimeämiskäytäntö on yleensä kirjoittaa sana Test luokan nimen eteen tai perään - esimerkiksi luokkaa Opiskelija testaisi luokka OpiskelijaTest tai TestOpiskelija).
Testien kirjoittaminen ei ole aina suoraviivaista, eikä tämän harjoituksen tavoittena ole antaa siitä täysin kattavaa kuvaa. Tarkoituksena on opastaa testien lisäämiseen omiin ohjelmiin ja näyttää muutaman esimerkin ja harjoituksen kautta millaisia virheitä testien avulla pyritään saamaan kiinni.
[Siirry seuraavaksi osaan Asennus](asennus.md)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment