Mokito Framework

I dataprogrammering for testing av Java-applikasjoner, er rammen Mokito brukt. Dette er en åpen kildekode / gratis ramme som er tilgjengelig for nedlasting. Det er i hovedsak et testramme som hjelper til med feilsøking. Gjennomføringen av Mokito som en mocking-ramme arbeider med å skape "Test-dobbelte" objekter, dvs. mockeobjekter, sikrer at samspillet med mocks forblir riktig.

Intro

Mokito er et rammeverk for testing av Java-programmer. Den simulerer oppførselen til komplekse gjenstander og letter utviklingen av enhetstesting og feilsøking.

Mockito er OpenSource og er tilgjengelig på følgende adresse: //mockito.org/.

Mockito er basert på prinsippet om et mock objekt som simulerer oppførelsen til et annet objekt.

Implementeringen av Mockito testing er gjort i flere trinn:

  • Opprettelse av mock objektet
  • Beskrivelse av forventet oppførsel
  • Bruk mocks
  • Kontrollerer at samspillet med mocks er riktig

Eksempel

 offentlig klasse ClassA {offentlig ClassA () {} offentlig tomt fonc1 () {} offentlig tomt fonc2 () {} offentlig int fonc3 (int a, int b) {return a + b; }} offentlig klasse ClassB {ClasseA ca; offentlig ClassA getCa () {return ca; } Offentlig tomt settCa (ClassA ca) {this.ca = ca; } offentlig klasse B () {ca = ny klasse a (); } offentlig tomrom met1 () {ca.fonc1 (); ca.fonc1 (); System.out.println (ca.fonc3 (5, 6)); } offentlig tomrom met2 () {ca.fonc2 (); }} 

Enhetstestingsklasse Klasse B:

 importer statisk org.mockito.Mockito.mock; importer org.mockito.Mockito; offentlig klasse Test {public static void main (String [] args) {ClassA ca = mock (ClassA.class); ClassB cb = ny ClassB (); cb.setCa (ca); cb.met1 (); Mockito.verify (ca, Mockito.times (2)). Fonc1 (); Mockito.verify (ca, Mockito.times (1)). Fonc3 (Mockito.anyInt (), Mockito.anyInt ()); }} 

Kodeanalyse:

ClassA ca = mock (ClassA.class);

=> Det skaper en AC, en mock klasse ClassA.

cb.setCa (ca);

=> Det påvirker ca-objektet til cb-objektet.

cb.met1 ();

=> Kaller objektet med metoden cb met1 ().

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

=> Verifiserer at metoden til mock ca func1 kalles to ganger.

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

=> Verifiserer at metoden for mock func3 ca kalles bare en gang til to heltallsparametere.

Når sjekken mislykkes, genereres et unntak.

Eksempel:

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

=> Denne linjen genererer følgende unntak:

Unntak i tråden "main" Ønsket men ikke påkalt:

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

==> Det indikerer at metoden func2 () mock AC ikke er kjent.

Du kan også endre resultatene som returneres fra en funksjon.

 System.out.println ("Resultatet av ca.fonc (3, 3) er" + ca.fonc3 (3, 3)); Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())). ThenReturn (Integer.valueOf (5)); System.out.println ("Resultatet av ca.fonc (3, 3) er" + ca.fonc3 (3, 3)); 

Kodeanalyse:

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

# Returneringsverdien til funksjon fonc3 (mock) var 0 .

Vi tvinger den til 5 .

Dette er spesielt nyttig når du bruker funksjoner som inneholder flere funksjoner (forhold, looper etc.), og vi vil verifisere oppførselen til en hvilken som helst funksjon. Vi trenger derfor å konfigurere mocks brukt i denne funksjonen slik at den passerer alle disse forholdene.

Et tips fra wjaouadi.

Forrige Artikkel Neste Artikkel

Beste Tips