ComTest

1. Uutta

2. Ongelma

  • Testaaminen on tärkeää
  • Testien kirjoittaminen ja ylläpitäminen on työlästä
  • Vaikka JUnit helpottaa asiaa, niin testit ovat eri tiedostossa ja koodia muutettaessa unohtuu helposti päivittää testejä
  • Yleensä Java-dokumentaatiosta puuttuu käyttöesimerkit
  • Entä jos "olio" olisi helppo suunnitella esimerkkien kautta?

3. ComTest projekti

Projektin tarkoituksena on luoda ohjelmisto java-sorsakoodin (jatkossa minkä tahansa kielen) kommentteihin kirjoitettujen testitapausten suorittamiseen.

Tällä hetkellä projekti on makrokielen sekä Eclipse pluginin testaamisvaiheessa. Tallessa on alkuperäisiä satunnaisia IdeoitaJaToivomuksia.

Seuraava vaihe on suorittaa käyttäjätestejä ja vertailuja eri mm. JUnitia ja ComTestiä käyttävien kesken.

Kysmyksiä

  • Mitä käyttää @example tilalla? Nyt varoittaa, että tuo voi tulla jatkossa käyttöön.
  • Miten nimetä testitiedostot niin että tiedetään ettei testitiedostoista enää generoida testejä? Nyt testi if ( fileName.endsWith("Test.java") ) return null; ei ole hyvä koska sitten ComTest.javasta ei tule testitiedostoa!

4. Makrokieli

Makrokielen nykyinen dokumentti

Tehtävänä oikeastaan ensin määritellä "makrokieli", jolla testit on helppo kirjoittaa. Ideana olisi siis, että testitapaukset toimivat samalla esimerkkinä "olion" käytöstä JavaDociin mennessään ja niiden lisääminen ja ylläpito olisi niin helppoa etteivät testit sen takia jäisi kirjoittamatta.

Makrokielen ohjaamana ComTest generoi JUnit-koodia, joka ajetaan normaalina JUnit-testinä. Testiluokkaan voi itse lisätä testimetodeja ja "makrokieli" vaihtaa tarvittaessa makrokielen kirjoittamat osat tuoreempiin.

Osa testiaineistosta voi olla sellaista että se menee JavaDociin kommentteihin ja osa sellaista että siitä generoituu vain testiä.

5. Asennus ja käyttö

5.0 Käyttö pluginina Eclipsessä

  • Eclipse 3.2: Lataa eclipse/plugins hakemistoon comtestplug_1.0.0.jar
  • Eclipse 3.3: Lataa eclipse/plugins hakemistoon comtestplug_1.0.3.jar
  • Tee 5.1:stä asetukset.
  • Ajaminen: oikea nappi ja ComTest (kerro ihmeessä jos keksit miten tämän saa vielä pikanäppäimeen)
  • Huom! Pitää toistaiseksi itse tallentaa ennen ajoa

5.1 Alkuvalmistelut

  • Ihan ensimmäisenä pitää Eclipsestä poistaa kommenttien automaattinen muotoilu, koska se muuttaa lainausmerkit html:ksi:
      Window/Preferences/Java/Code style/Formater/New
      Nimi foramtoijalle ja kopinti olemasa olevasta
      Edit (tarvittaessa)
      Comments ja tuolta pois Enable comment formating
      (toki riittää poistaa pelkkä lainausmerkkien muuttaminen jos tietää mistä se tehdään, minä en :-)
    
  • Jos haluat testit eri hakemistoon kuin lähdekoodin, niin tee lähdekoodihakemistoon ComTest.ini jossa on kerrottu mihin hakemistoon ja mihin pakettiin testit tehdään:
    #DIRECTORY=dir   
    #PACKAGE=packagename
    
    Esimerkiksi
    #DIRECTORY=test
    #PACKAGE=.test
    
    Jos ini-tiedostoa ei löydy java-tiedoston hakemistosta, kiivetään hakemistohierarkiaa ylöspäin kunnes tuo löytyy tai jos ei löydy, käytetään oletuksia. Ensimmäinen löytynyt tiedosto luetaan ja muista ei välitetä lainkaan. Toki rivit voi lisätä lähdekoodin tiedostoonkin kommentteihin ILMAN * -merkkiä edessä.
  • Lisää JUnit 4 testipaketin kirjastoon:
    • Projet/Properties/Java Build Path/Add Library/JUnit/JUnit 4 Finish
  • Tee vielä JUnit ajosta oma pikanäppäin, niin testin ajaminen on nopeata:
    Window/Preferences/General/Keys/Modify/
    Category: ComTest.
    Name: ComTest run
    When: Windows
    Key sequence name: paina tähän mieleinen yhdistelmä.
    Mikäli yhdistelmäsi on jossakin käytössä, valitse uusi
    tai tuhoa yhdistelmän vanha käyttötarkoitus.
    

5.2 Käyttö

  • Lisää makrokielen mukaisia kommentteja lähdetiedostoosi, muista että tässä auttaa comtest Ctrl-Space
  • Aja ja testaa oikealla napilla ja ComTest/Generate, Run JUnit
  • Jos tulee käännösvirheitä, niin katso syntyneestä tiedostonnimiTest.java tiedostosta virheiden kohdat ja korjaa vastaavat ComTest kommenteissa.
  • jos sinulla on tehty pikanäppäin, voit toistaa viimeisimmän ajon tuosta pikanäppäimestä. HUOM! Ei aja tiedostoa jonka kohdalla ollaan, vaan sen joka viimeksi on oikealla napilla ajettu.
  • muista aina myös kokeilla testillä, jossa laitat väärän tuloksen, jotta tiedät että JUnit todella toimii ja ilmoittaa myös virheistä.

5.3 Ongelmia

  • Jos tulee ongelmia, niin niihin saattaa auttaa kun etsii Eclipsen configuration hakemiston ja tyhjentää sen.
  • Jos valittaa JUnit 3-testeistä, ota oikealla napilla Run As/Run... ja JUnit-kohdan alta poistat testit joissa on Test Runnerina Junit 3 tai vaihda niihin JUnit 4.
  • Avaa syntynyt testitiedosto
      Jos import static org.junit.Assert.*; on tuntematon, niin tarkista
      että Window/Preferences/Java/Compiler on vähintään 5.0, mieluiten 6.x
    
  • Tarkista auttaako: Window/Preferences/Java/Installed JREs/Edit current JRE/Add External JARs/add JUnit 4

  • Tee yksi testi JUnit: File/New/Other/Java/JUnit/Junit Test Case/New JUnit 4 test. Sitten valitse joku sopiva luokka ja sen metodi testattavaksi ja kokeile että tämä toimii.

5.4 Käyttö ilman pluginia

Käyttö ilman pluginia


TracWelcomePage siirretty.