arckép

Neuwirth István

programtervező informatikus MSc – ELTE

Computational and Software Techniques MSc – Cranfield, UK

Elérhetőség
pitta2@gmail.com
+36 30 329 3039

Valid XHTML 1.0 Transitional

Valid CSS!

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

Megoldások

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

Vissza