Ismijavajte završne satove i metode s Mockitom
1. Pregled
U ovom ćemo se kratkom članku usredotočiti na to kako se rugati završnim predavanjima i metodama - koristeći Mockito.
Kao i kod ostalih članaka usredotočenih na Mockito okvir (poput Mockito Verify, Mockito When / Then i Mockito's Mock Methods), koristit ćemo MyList klasa prikazana u nastavku kao suradnik u test slučajevima.
Za ovaj ćemo vodič dodati novu metodu:
javna klasa MyList proširuje AbstractList {final public int finalMethod () {return 0; }}
A također ćemo ga produžiti s konačni podrazred:
javni finalni razred FinalList proširuje MyList {@Override public int size () {return 1; }}
2. Konfigurirajte Mockito za konačne metode i satove
Prije nego što se Mockito može koristiti za ismijavanje završnih klasa i metoda, treba ga konfigurirati.
Moramo dodati tekstualnu datoteku u projekt src / test / resources / mockito-extensions imenik imenovan org.mockito.plugins.MockMaker i dodajte jedan redak teksta:
mock-maker-inline
Mockito provjerava proširenja direktorij za konfiguracijske datoteke kad se učita. Ova datoteka omogućuje ismijavanje konačnih metoda i klasa.
3. Rugajte se konačnoj metodi
Jednom kada je Mockito pravilno konfiguriran, konačna metoda može se izrugivati kao i svaka druga:
@Test public void whenMockFinalMethodMockWorks () {MyList myList = new MyList (); MyList mock = lažno (MyList.class); kada (mock.finalMethod ()). thenReturn (1); assertNotEquals (mock.finalMethod (), myList.finalMethod ()); }
Stvaranjem konkretne instance i lažne instance MyList, možemo usporediti vrijednosti koje su vratile obje verzije finalMethod () i provjerite je li pozvan lažni.
4. Rugajte se završnom predavanju
Ruganje završnoj nastavi jednako je lako kao i ruganje bilo kojoj drugoj klasi:
@Test public void whenMockFinalClassMockWorks () {FinalList finalList = novi FinalList (); FinalList mock = lažno (FinalList.class); kada (mock.size ()). thenReturn (2); assertNotEquals (mock.size (), finalList.size ()); }
Slično gore navedenom testu, kreiramo konkretnu i lažnu instancu naše konačne klase, ismijavamo metodu i provjeravamo da li se izvrgnuta inačica ponaša drugačije.
5. Zaključak
U ovom smo brzom vodiču objasnili kako se Mockito ismijava završne satove i metode korištenjem Mockito proširenja.
Cjelovite primjere, kao i uvijek, možete pronaći na GitHubu.