9. óra (2024.04.10.)
Feladatok
Töltsétek le az előző órai félkész megoldást.
Generikusok - MultiMap folytatás
Az előző órai MultiMap megvalósítás mellé gondoljátok át, mire célszerű lecserélni a putAll, illetve forEach raw typeú paramétereit.
Generikusok - Basket
A feladat kiegészíteni a Basket osztály üres metódusait úgy, hogy a generikus típusparaméterek minél általánosabbak legyenek. Értelemszerűen ezt tesztelni is célszerű.
Hasznos: super/extends
Reflection
Töltsétek le az gyak9.zip fájlt.
A feladat egy saját unit test framework írása :) Nem kell megijedni, rém egyszerű lesz: a NanoUnit osztályt kell úgy kiegészíteni, hogy a StackTest teszteseteit le tudja futtatni. A NanoUnitot egy olyan command line runnernek kell elképzelni, ami parancssori argumentumban kapja meg a tesztosztály teljes minősített nevét.
Amire szükségetek lesz:
- A parancssori argumentum String típusú, ebből egy Class példányt (a tesztosztály class-a), illetve a classból egy objektumot (a tesztosztály egy példánya, aminek a teszt metódusait tudjuk meghívni) kell készíteni
- Szükség van egy @Test annotációra is, figyeljetek a Retentionre! (Rossz RetentionPolicyval az életben nem fogjátok megtalálni az annotációt.)
- A tesztosztály példány @Test annotációval rendelkező metódusain végig kell menni és meghívni őket
- Az Assertions osztályt értelemszerűen kiegészíteni, hogy AssertError dobódjon abban az esetben, ha sérül az assertion (pl. assertFalse(true) hívásnál).
Extra feladatok
- A unit test framework ne hasaljon el az első hibás tesztesetnél, hanem mindegyik tesztesetről kapjunk egy ok/failed választ
- Tudjon kezelni expected exceptiont, mint a JUnit4-ben