Mokito sistema

Programuojant „ Java“ programas, naudojama programinė įranga Mokito. Tai atviro kodo / nemokamai sistema, kurią galima atsisiųsti. Iš esmės tai yra testavimo sistema, padedanti aptikti klaidas. Mokito diegimas kaip pasityčiojimas rėmo darbui kuriant „Test Double“ objektus, ty gudrumo objektus, užtikrina, kad sąveika su šautuvais lieka teisinga.

Įvadas

Mokito yra Java programų testavimo sistema. Jis imituoja sudėtingų objektų elgesį ir palengvina vieneto testavimo ir klaidų aptikimo plėtrą.

„Mockito“ yra „OpenSource“ ir yra prieinamas šiuo adresu: //mockito.org/.

„Mockito“ yra pagrįstas mock objekto principu, kuris imituoja kito objekto elgesį.

Mockito bandymų įgyvendinimas atliekamas keliais etapais:

  • Mock objekto sukūrimas
  • Numatomo elgesio aprašymas
  • Naudojant „mocks“
  • Patikrinkite, ar sąveika su triukšmu yra teisinga

Pavyzdys

 public class ClassA {public ClassA () {} public void fonc1 () {} viešoji negaliojantis fonc2 () {} viešasis int fonc3 (int a, int b) {return a + b; }} viešoji klasė ClassB {ClasseA ca; public ClassA getCa () {return ca; } public void setCa (ClassA ca) {this.ca = ca; } public ClassB () {ca = naujas ClassA (); } public void met1 () {ca.fonc1 (); ca.fonc1 (); System.out.println (ca.fonc3 (5, 6)); } public void met2 () {ca.fonc2 (); }} 

Vieneto bandymo klasės klasėB:

 importuoti statinį org.mockito.Mockito.mock; importuoti 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.times (2)) fonc1 (); Mockito.verify (ca, Mockito.times (1)) fonc3 (Mockito.anyInt (), Mockito.anyInt ()); }} 

Kodo analizė:

ClassA ca = mock (ClassA.class);

=> Jis sukuria AC, mock class ClassA.

cb.setCa (ca);

=> Tai veikia objekto ca objektą.

cb.met1 ();

=> Skambina objektui naudojant cb met1 () metodą.

Mockito.verify (ca Mockito.times (2)).

=> Patvirtina, kad dvigubai vadinamas modelio „ca func1“ metodas.

Mockito.verify (ca, Mockito.times (1)) fonc3 (Mockito.anyInt (), Mockito.anyInt ());

=> Patikrina, ar „mock func3 ca“ metodas vadinamas tik vieną kartą dviem sveikais skaičiais.

Kai patikrinimas nepavyksta, sukuriama išimtis.

Pavyzdys:

Mockito.verify (ca, Mockito.atLeast (1)) fonc2 ();

=> Ši eilutė sukuria šią išimtį:

Išimtis temoje „pagrindinis“ Ieškoma, bet nenaudojama:

 classA.fonc2 (); -> Test01.main (Test01.java:16) 

==> Tai rodo, kad metodas func2 () nežino AC.

Taip pat galite pakeisti iš funkcijų grąžintus rezultatus.

 System.out.println ("ca.fonc (3, 3) rezultatas yra" + ca.fonc3 (3, 3)); Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())), tadaReturn (Integer.valueOf (5)); System.out.println ("ca.fonc (3, 3) rezultatas yra" + ca.fonc3 (3, 3)); 

Kodo analizė:

 Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())). tadaReturn (Integer.valueOf (5)); 

# Funkcijos fonc3 (maketas) grąžinimo reikšmė buvo 0 .

Priverstume jį 5 .

Tai ypač naudinga naudojant funkcijas, kuriose yra kelios funkcijos (sąlygos, kilpos ir kt.), Ir mes norime patikrinti bet kokios funkcijos elgesį. Todėl turime sukonfigūruoti šioje funkcijoje naudojamus šliuzus, kad jie atitiktų visas šias sąlygas.

Patarimas iš wjaouadi.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai