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.