Mokito Framework
Intro
Mokito je rámec pro testování Java aplikací. Simuluje chování komplexních objektů a usnadňuje vývoj testování jednotek a detekci chyb.
Mockito je OpenSource a je k dispozici na adrese: //mockito.org/.
Mockito je založeno na principu falešného objektu, který simuluje chování jiného objektu.
Realizace Mockito testování probíhá v několika krocích:
- Vytvoření falešného objektu
- Popis očekávaného chování
- Použití falešné
- Kontrola správnosti interakce s makety
Příklad
public class ClassA {public ClassA () {} public void fonc1 () {} public void fonc2 () {} public int fonc3 (int a, int b) {return a + b; }} public class ClassB {ClasseA ca; public ClassA getCa () {return ca; } public void setCa (ClassA ca) {this.ca = ca; } public ClassB () {ca = nová ClassA (); } public void met1 () {ca.fonc1 (); ca.fonc1 (); System.out.println (ca.fonc3 (5, 6)); } public void met2 () {ca.fonc2 (); }}
Třída zkušební třídy ClassB:
import static org.mockito.Mockito.mock; import org.mockito.Mockito; public class Test {public static void main (String [] args) {ClassA ca = mock (ClassA.class); ClassB cb = new ClassB (); cb.setCa (ca); cb.met1 (); Mockito.verify (ca, Mockito x (2)) fonc1 (); Mockito.verify (ca, Mockito.times (1)) fonc3 (Mockito.anyInt (), Mockito.anyInt ()); }}
Analýza kódu:
ClassA ca = mock (ClassA.class);
=> Vytváří AC, falešnou třídu ClassA.
cb.setCa (ca);
=> Ovlivňuje objekt ca objektu cb.
cb.met1 ();
=> Volá objekt s metodou cb met1 ().
Mockito.verify (ca Mockitox (2)) func1 ();
=> Ověří, že metoda falešné funkce func1 je volána dvakrát.
Mockito.verify (ca, Mockito.times (1)) fonc3 (Mockito.anyInt (), Mockito.anyInt ());
=> Ověří, že metoda mock func3 ca je volána pouze jednou dvěma parametry.
Když kontrola selže, generuje se výjimka.
Příklad:
Mockito.verify (ca, Mockito.atLeast (1)) fonc2 ();
=> Tento řádek vygeneruje následující výjimku:
Výjimka ve vlákně "hlavní" Chtěl, ale nebyl vyvolán:
classA.fonc2 (); -> na Test01.main (Test01.java:16)
==> Označuje, že metoda func2 () simulovat AC není známa.
Můžete také změnit výsledky vrácené z funkce.
System.out.println ("Výsledek ca.fonc (3, 3) je" + ca.fonc3 (3, 3)); Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ()), pakReturn (Integer.valueOf (5)); System.out.println ("Výsledek ca.fonc (3, 3) je" + ca.fonc3 (3, 3));
Analýza kódu:
Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())). potomReturn (Integer.valueOf (5));
# Vrácená hodnota funkce fonc3 (mock) byla 0 .
Vynucujeme to na 5 .
To je užitečné zejména při použití funkcí, které obsahují několik funkcí (podmínky, smyčky atd.) A chceme ověřit chování jakékoli funkce. Proto je třeba nakonfigurovat mocks používané v této funkci tak, aby splňoval všechny tyto podmínky.
Tip z wjaouadi.