Mokito Framework

V počítačovém programování pro testování Java aplikací se používá framework Mokito. Toto je open source / free framework, který je k dispozici ke stažení. Je to v podstatě testovací rámec, který pomáhá při detekci chyb. Implementace Mokito jako falešných rámových prací při vytváření objektů „Test Double“, tj. Simulovaných objektů, zajišťuje, že interakce s makety zůstane správná.

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.

Předchozí Článek Následující Článek

Nejlepší Tipy