MoreUnit Plugin
Számomra az egyik legszembetűnőbb hiányosság, amit a hivatalos Eclipse disztribúcióval kapcsolatban tapasztaltam, hogy nem támogatja tesztosztályok hely- és névkonvenció szerinti létrehozását.
Szerencsére régóta létezik a MoreUnit, ami nemcsak a fenti problémán segít, hanem számos egyéb szolgáltatást is nyújt. Ezek közül talán a legfontosabb, hogy felismeri a Maven projektstruktúrát és lehetővé teszi a production-test osztálypárok egyszerű kezelését. Például, ha épp egy Java osztályt módosítunk, amire szeretnénk egységteszteket is írni, a Ctrl+j
billentyűkombinációt lenyomva egyszerűen létre tudjuk hozni a megfelelő helyen a hozzá tartozó tesztosztályt.
Ha ez már létezik, akkor egyszerűen csak odanavigál minket. Így ebben az esetben a parancs jól használható a teszt és az üzemi kód közötti váltogatásra is.
A fenti navigációt metódus szinten is megtehetjük. Ha egy metódus törzsében áll a kurzor, a Ctrl+u
megnyomásával a hozzá tartozó teszt metódushoz juthatunk, illetve ha ilyen még nincs, létre is tudunk hozni egyet.
A bővítmény a navigáció mellett a tesztek futtatását is megkönnyíti. A Ctrl+r
billentyűkombinációval elindíthatjuk az aktuális forrásfájlhoz tartozó egységteszteket. Ez hasznos lehet, ha nem szeretnénk a teljes tesztcsomagot lefuttatni minden egyes apró módosítás után.
Kár, hogy a plugin nem képezi az alap Eclipse disztribúció részét. Talán egy nap bekerül, de addig is érdemes telepíteni, mert nagyon megkönnyíti a tesztek kezelését.
Favourites
A statikus importokat sok esetben használjuk tesztek írásánál, mert könnyebben olvasható, DSL szerű kód írására adnak lehetőséget.
A Window > Preferences > Java > Editor > Content Assist > Favourites
alatt található beállításokkal megadható, hogy az IDE content assist során milyen statikus tagokat ajánljon fel, akkor is, ha azokra még nincs import a forrásfájlban.
Segítségükkel például elérhető, hogy egy újonnan létrehozott teszt osztályban az assertEquals
kifejezést begépelve az Eclipse automatikusan felajánlja a hozzá tartozó org.junit.Assert.assertEquals statikus importálását, anélkül, hogy emlékeznünk kellene rá, hogy a metódus melyik osztályban van definiálva.
Én az alábbiakat használom:
org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
Ha beállítjuk őket, jócskán felgyorsítható a tesztek írása azzal, hogy nem kell a sűrűn előforduló kifejezéseket kézzel behúznunk.
Type Filters
Ha a List kifejezésre felbukkanó, az autocomplete által ajánlott tételeket nézzük, általában sok olyasmit látunk, amire nincs szükségünk. Például valószínűleg sosem fogjuk webalkalmazások fejlesztésénél a java.awt.List osztályt használni. Szerencsére a megjelenő lista testreszabható szűrési beállításokkal, amelyek a Window > Preferences > Java > Appearance > Type Filters
alatt adhatóak meg.
Habár az Eclipse a megjelenített javaslatokat úgy sorrendezi, hogy a sűrűn használt elemek elől helyezkedjenek el, érdemes eltüntetni azokat az ajánlásokat, amelyekre biztosan nincs szükségünk.
Kódsablonok
A Window > Preferences > Java > Templates
beállítási panel alatt találhatóak az előre definiált kódsablonok, melyek rengeteg pötyörészéstől menthetnek meg minket. Van, ami a tesztek írásával kapcsolatban is hasznos lehet: ha a test-et begépelve megnyomjuk a Ctrl+space
gombokat, egyszerűen beilleszthetjük egy új teszteset vázát.
Billentyűkombinációk
Az alábbi ábrán összegyűjtöttem azokat a billentyűkombinációkat, amelyeket gyakran használok. A listán sok tétel a tesztírással kapcsolatos, de feltüntettem olyanokat is, amelyek általános, de tesztek készítésénél sűrűn előforduló feladatokat könnyítenek meg.
Érdemes azokat a parancsokat testreszabni a General > Keys
panelen, amik nem állnak kézre.
A tesztek írásának egyik komoly gátja lehet, ha az ezzel kapcsolatos feladatokat nem tudjuk reflex szerűen végrehajtani, ezért érdemes időt szánni a megfelelő beállítások elkészítésére.
A fejlécben található kép forrása az https://eclipse.org/.