Hirdetés

Új hozzászólás Aktív témák

  • boost
    veterán

    Sziasztok, lenne egy kérdésem a Mockito-val kapcsolatosan.

    Már nem nagyon foglalkozok Java fejlesztéssel, de most egy BigData projekt kapcsán beleugrottam újra, nagy lelkesedéssel.

    Le is érkeztem a gödör aljára. :D Szóval egy kis progit írtam, ami különbözo" rendszereket hivogat meg, akár többször is. A különbözo" rendszerek saját zárt api-kkal rendelkeznek.

    Az összes rendszerhez írtam egy ValamiCommander osztályt, aminek a feladata a külso" rendszerekkel való kommunikáció, és aminek a unit tesztjénél az eredeti helyett mockobjectekkel dolgozok.
    pl: FileSystem fileSystem = mock(FileSystem.class); ezután when, meg verify, stb.

    Ezeket a CommanderTest teszteknél használtam is nagy örömmel. Külön tetszett, hogy nem kellett setter a mock objekthez, hanem beleinjektálta.

    Mivel a commander osztály nem tartalmazott üzleti logikát, csak lényegében továbbadta a hívást a külso" APInak, ezért sok értelme nem volt a unit tesztelésnek, de legalább belerázódtam egy kicsit.

    Az üzleti logika egy szinttel feljebb van. Vannak ValamiTask osztályaim, amik mindegyike tartalmaz egy doAction metódust, és az tartalmazza az üzleti logikát, valamint a commander meghívását.

    ès most jön a kérdés:

    Hogy oldom meg a TaskTest osztály testDoAction metódusában, hogy az ott példányosított Task osztály doAction függvényében meghívott commander osztály mock objektumokat használjon? Tehát két hívásra to"le.

    Nekem van pár túl gyenge tippem, de szeretném megkérdezni a közönséget is.

    Ja, és az én "rossz" megoldásom az lenne, hogy lebontani ezeket a rétegek beanekre, és akkor lehetne távolról is több rétegen át injektálni a mock-objekumokat.

    A szerintem jó megoldás, hogy el kell engedni a többrétegu" unit teszteket, hisz a unit teszt arra van, hogy azt a metódust tesztelje, az abban levo"üzleti logikát, és nem a metódus által meghívott metódusokat, szóval ebben az esetben a commander hívás már egy mock commander lesz. és csak arra koncentrálok, hogy mikor, és hányszor lett meghívva a mock kommander, és ez az eredmény megfelel-e annak, amit vártunk to"le.

Új hozzászólás Aktív témák