Mock Final Classes and Methods with Mockito
1. Áttekintés
Ebben a rövid cikkben arra fogunk koncentrálni, hogy hogyan csúfolhatjuk ki a végső osztályokat és módszereket - a Mockito segítségével.
Mint más, a Mockito keretrendszerre összpontosító cikkeknél (például a Mockito Verify, a Mockito When / Then és Mockito's Mock Methods), a A listám osztály az alábbiakban látható, mint együttműködő teszt esetekben.
Hozzáadunk egy új módszert ehhez az oktatóanyaghoz:
public class A MyList kiterjeszti az AbstractList {final public int finalMethod () {return 0; }}
És kibővítjük a-val is végső alosztály:
public final class FinalList kiterjeszti a MyListet {@Orride public int size () {return 1; }}
2. Konfigurálja a Mockitot az utolsó módszerekhez és osztályokhoz
Mielőtt a Mockito felhasználható lenne az utolsó osztályok és módszerek gúnyolására, konfigurálnia kell.
Hozzá kell adnunk egy szöveges fájlt a projekthez src / test / resources / mockito-extensions megnevezett könyvtár org.mockito.plugins.MockMaker és adjon hozzá egyetlen sort szöveget:
gúnyoló-inline
Mockito ellenőrzi a kiterjesztések könyvtár a konfigurációs fájlokhoz, amikor betöltődik. Ez a fájl lehetővé teszi a végső módszerek és osztályok kigúnyolását.
3. Gúnyoljon egy végső módszert
A Mockito megfelelő konfigurálása után a végső módszer gúnyolódhat, mint bármely más:
@Test public void whenMockFinalMethodMockWorks () {MyList myList = new MyList (); MyList gúny = gúny (MyList.osztály); mikor (mock.finalMethod ()). thenReturn (1); assertNotEquals (mock.finalMethod (), myList.finalMethod ()); }
Konkrét példány létrehozásával és a A listám, összehasonlíthatjuk a finalMethod () és ellenőrizze, hogy a gúnyt meghívták-e.
4. Kigúnyolják a döntő osztályt
A végső osztály megcsúfolása ugyanolyan egyszerű, mint bármely más osztály megcsúfolása:
@Test public void whenMockFinalClassMockWorks () {FinalList finalList = new FinalList (); FinalList gúny = gúny (FinalList.class); mikor (mock.size ()). akkorReturn (2); assertNotEquals (mock.size (), finalList.size ()); }
A fenti teszthez hasonlóan létrehozunk egy konkrét példányt és egy végső osztályunk próbapéldányát, gúnyolunk egy módszert és ellenőrizzük, hogy a gúnyolt példány másképp viselkedik-e.
5. Következtetés
Ebben a gyors bemutatóban kitértünk arra, hogyan csúfolhatjuk meg az utolsó osztályokat és módszereket a Mockitóval egy Mockito kiterjesztés használatával.
A teljes példák, mint mindig, a GitHub oldalon találhatók.