Mockito-rammeverket gir en rekke metoder som mock(), verify(), when() osv., som brukes til å teste Java-applikasjoner. Å bruke disse forhåndsdefinerte metodene gjør testingen veldig enkel.
Den korte beskrivelsen av Mockito-metodene er gitt nedenfor:
konvertere boolesk til streng
Mockito mock() metode
Den brukes til å lage falske objekter av en gitt klasse eller grensesnitt. Mockito inneholder fem håne() metoder med ulike argumenter. Når vi ikke tilordnet noe til håner, vil de returnere standardverdier. Alle fem metodene utfører samme funksjon som å håne objektene.
Følgende er mock()-metodene med forskjellige parametere:
Syntaks: mock(KlasseklasseToMock)
Syntaks: mock(Class classToMock, Answer defaultAnswer)
Syntaks: mock(Class classToMock, MockSettings mockSettings)
Syntaks: mock(KlasseklasseToMock, ReturnValues returnValues)
Syntaks: mock(KlasseklasseToMock, strengnavn)
Følgende kodebit viser hvordan du bruker håne() metode:
ToDoService doService = mock(ToDoService.class);
Mockito when()-metoden
Det muliggjør stubbemetoder. Den bør brukes når vi ønsker å håne for å returnere spesifikke verdier når bestemte metoder kalles. For å si det enkelt, ' Når XYZ()-metoden kalles, deretter returner ABC.' Det brukes mest når det er en betingelse å utføre.
Syntaks: when(T methodCall)
Følgende kodebit viser hvordan du bruker when()-metoden:
when(mock.someCode ()).thenReturn(5);
I koden ovenfor, thenReturn() brukes mest med når() metode.
Mockito verify() metode
De bekrefte() metode brukes til å sjekke om noen spesifiserte metoder kalles eller ikke. Enkelt sagt validerer den den bestemte oppførselen som skjedde en gang i en test. Den brukes nederst i testkoden for å sikre at de definerte metodene kalles.
Mockito-rammeverket holder styr på alle metodekallene med deres parametere for å håne objekter. Etter hån kan vi verifisere at de definerte betingelsene er oppfylt eller ikke ved å bruke verify()-metoden. Denne typen testing er noen ganger kjent som atferdstesting. Den sjekker at en metode kalles med de riktige parameterne i stedet for å sjekke resultatet av et metodekall.
Verify()-metoden brukes også til å teste antall påkallinger. Så vi kan teste det nøyaktige antallet påkallelser ved å bruke ganger metode, minst én gang metode, og på det meste metoden for en hånet metode.
Det er to typer verify()-metoder tilgjengelig i Mockito-klassen, som er gitt nedenfor:
Syntaks: verifisere (T spott)
Syntaks: verifisere (T mock, VerificationMode-modus)
Mockito spy() metode
Mockito gir en metode for å delvis håne et objekt, som er kjent som spion metode. Når du bruker spionmetoden, eksisterer det et ekte objekt, og spioner eller stubber blir laget av det virkelige objektet. Hvis vi ikke stopper en metode som bruker spion, vil den kalle den virkelige metoden atferd. Hovedfunksjonen til spy()-metoden er at den overstyrer de spesifikke metodene til det virkelige objektet. En av funksjonene til spy()-metoden er at den verifiserer påkallelsen av en bestemt metode.
Det er to typer spy()-metoder tilgjengelig i Mockito-klassen:
Syntaks: spion(T-objekt)
Syntaks: spion(KlasseklasseToSpy)
Følgende kodebit viser hvordan du bruker spy()-metoden:
List spyArrayList = spy(ArrayList.class);
Mockito reset() metode
Mockito reset()-metoden brukes til å tilbakestille mockene. Den brukes hovedsakelig til å jobbe med beholderen som er injisert. Vanligvis resulterer reset()-metoden i en lang kode og dårlige tester. Det er bedre å lage nye mocks i stedet for å bruke reset()-metoden. Det er grunnen til at reset()-metoden sjelden brukes i testing.
Signaturen til reset()-metoden er:
okser vs okse
public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); }
Mockito verifyNoMoreInteractions() metode
Den brukes til å sjekke at noen av de gitte hånene har ubekreftede interaksjoner. Vi kan bruke denne metoden etter å ha verifisert all mock, for å forsikre oss om at ingenting annet ble påkalt på mockene. Den oppdager også de ubekreftede påkallelsene som oppstår før testmetoden, for eksempel i setup(), @Before-metoden eller konstruktøren. Det er en valgfri metode, og vi trenger ikke bruke den i hver test.
Signaturen til verifyNoMoreInteractions()-metoden er:
public static void verifyNoMoreInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); }
Mockito verifyZeroInteractions() metode
Den bekrefter at ingen interaksjon har skjedd på de gitte hånene. Den oppdager også påkallelsene som har skjedd før testmetoden, for eksempel i setup(), @Before-metoden eller konstruktøren.
Signaturen til verifyZeroInteractions()-metoden er:
public static void verifyZeroInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); }
Mockito doThrow()-metoden
Den brukes når du skal stoppe en void-metode for å kaste et unntak. Det oppretter en ny unntaksforekomst for hver metodeanrop. Det er to typer doThrow()-metoder tilgjengelig i Mockito-klassen med forskjellige parametere, som vist nedenfor:
Signaturen til doThrow()-metoden er:
public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); }
Syntaks: doThrow(Class toBeThrown)
Signaturen til doThrow()-metoden er:
public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); }
Mockito doCallRealMethod()-metoden
Det brukes når vi vil kalle den virkelige implementeringen av en metode. Med andre ord, det brukes til å lage delvise hån av et objekt. Det brukes i sjeldne situasjoner, for eksempel å kalle de virkelige metodene. Den ligner på spy()-metoden, og den eneste forskjellen er at den resulterer i kompleks kode.
Signaturen til doCallRealMethod()-metoden er:
public static Stubber doCallRealMethod() { return MOCKITO_CORE.doAnswer(new CallsRealMethods()); }
Mockito doAnswer()-metoden
Den brukes når vi ønsker å kutte en void-metode med en generisk svartype. Signaturen til doAnswer()-metoden er:
public static Stubber doAnswer(Answer answer) { return MOCKITO_CORE.doAnswer(answer); }
Mockito doNothing()-metoden
Den brukes til å angi ugyldige metoder til å gjøre ingenting. Metoden doNothing() brukes i sjeldne situasjoner. Som standard gjør void-metodene på falske forekomster ingenting, det vil si at ingen oppgave utføres.
Signaturen til doNothing()-metoden er:
public static Stubber doNothing() { return MOCKITO_CORE.doAnswer(new DoesNothing()); }
Mockito doReturn() metode
Det brukes i de sjeldne tilfellene når vi ikke kan bruke Mockito.when(object). Mockito.when(object)-metoden er alltid foreslått for stubbing fordi den er argumenttypesikker og mer lesbar sammenlignet med doReturn()-metoden.
tilfeldig verdigenerator i java
Signaturen til doReturn()-metoden er:
public static Stubber doReturn(Object toBeReturned) { return MOCKITO_CORE.doAnswer(new Returns(toBeReturned)); }
Mockito inOrder() metode
Den brukes til å lage objekter som tillater verifisering av spotter i en bestemt rekkefølge. Bekreftelse gjort i rekkefølge er mer fleksibel siden vi ikke trenger å bekrefte alle interaksjoner. Vi trenger å verifisere bare de interaksjonene som er interessert i å teste (i rekkefølge). Vi kan også bruke inOrder()-metoden for å lage et inOrder-objekt som passerer håner som er relevante for in-order-verifisering.
Signaturen til Mockito.inOrder()-metoden er:
public static InOrder inOrder(Object... mocks) { return MOCKITO_CORE.inOrder(mocks); }
Mockito ignoreStubs()-metoden
Den brukes til å ignorere de stubbede metodene til gitte håner for verifisering. Det er nyttig med verifyNoMoreInteractions()- eller verification inOrder()-metoder. Det hjelper også med å unngå overflødig verifisering av stubbede samtaler.
Signaturen til ignoreStubs()-metoden er:
public static Object[] ignoreStubs(Object... mocks) { return MOCKITO_CORE.ignoreStubs(mocks); }
Mockito times() metode
Den brukes til å verifisere det nøyaktige antallet metodepåkallelser, noe som betyr at det erklærer hvor mange ganger en metode påkalles. Signaturen til times()-metoden er:
public static VerificationMode times(int wantedNumberOfInvocations) { return VerificationModeFactory.times(wantedNumberOfInvocations); }
Mockito never() metode
Den brukes til å bekrefte at interaksjonen ikke skjedde. Signaturen til never()-metoden er:
public static VerificationMode never() { return times(0); }
Mockito atLeastOnce()-metoden
Den brukes til å verifisere påkallingen minst én gang, noe som betyr at metoden bør påberopes minst én gang.
Signaturen til atLeastOnce()-metoden er:
public static VerificationMode atLeastOnce() { return VerificationModeFactory.atLeastOnce(); }
Mockito atLeast()-metoden
Den brukes til å bekrefte påkallingen minst x antall ganger. For eksempel, gitt atMinst(3) betyr at metoden vil påkalle minimum tre ganger.
Signaturen til atLeast()-metoden er:
public static VerificationMode atLeast(int minNumberOfInvocations) { return VerificationModeFactory.atLeast(minNumberOfInvocations); }
Mockito atMost()-metoden
Den brukes til å bekrefte påkallingen maksimalt x antall ganger. For eksempel, gitt atMost(3) betyr at metoden vil påkalle maksimalt tre ganger.
Signaturen til atMost()-metoden er:
public static VerificationMode atMost(int maxNumberOfInvocations) { return VerificationModeFactory.atMost(maxNumberOfInvocations); }
Mockito kaller () metode
Det tillater en ikke-grådig verifisering i rekkefølge. Den kan bare brukes med inOrder()-verifiseringsmetoden. For eksempel, inOrder.verify(mock, calls(3)).xyzMethod('...');
Signaturen til calls()-metoden er:
public static VerificationMode calls( int wantedNumberOfInvocations ){ return VerificationModeFactory.calls( wantedNumberOfInvocations ); }
Mockito only() metode
Den sjekker at den gitte metoden var den eneste påberopte metoden. Signaturen til only()-metoden er:
programvaretesting
public static VerificationMode only() { return VerificationModeFactory.only(); }
Mockito timeout() metode
Det lar Mockito utføre verifisering med et tidsavbrudd. Den instruerer en verifisering om å vente i en bestemt tidsperiode på en bestemt interaksjon i stedet for å mislykkes umiddelbart. Det kan være nyttig for testing i eksisterende situasjoner.
Timeout()-metoden er forskjellig fra after()-metoden ettersom after()-metoden venter i hele perioden med mindre det endelige resultatet er deklarert, mens timeout()-metoden vil stoppe så snart verifiseringen går. Det brukes sjelden i testing.
Signaturen til timeout()-metoden er:
public static VerificationWithTimeout timeout(long millis) { return new Timeout(millis, VerificationModeFactory.times(1)); }
Mockito after() metode
Det lar Mockito verifisere over en gitt tidsperiode. Vi har allerede diskutert at after()-metoden er forskjellig fra timeout()-metoden.
Signaturen til after()-metoden er:
public static VerificationAfterDelay after(long millis) { return new After(millis, VerificationModeFactory.times(1)); }
Mockito validateMockitoUsage()-metoden
Den brukes for å eksplisitt validere rammetilstanden for å oppdage ugyldig bruk av Mockito-rammeverket. Det er en valgfri funksjon i Mockito fordi den validerer bruken hele tiden. Både den innebygde løperen (MockitoJUnitRunner) og regelen (MockitoRule) kaller validateMockitoUsage()-metoden etter hver testmetode.
Signaturen til validateMockitoUsage()-metoden er:
public static void validateMockitoUsage() { MOCKITO_CORE.validateMockitoUsage(); }
Mockito withSettings()-metoden
Den brukes til å lage mocks med ekstra mock-innstillinger. Den bør brukes av og til i testing. I stedet for å bruke withSettings()-metoden, lag enkle tester ved å bruke enkle mocks. Hovedårsakene til å bruke MockSettings er
- Ved å bruke MockSetting kan vi enkelt legge til andre mock-innstillinger når det er nødvendig.
- Den kombinerer forskjellige mock-innstillinger uten å rote til koden.
Signaturen til withSettings()-metoden er:
public static MockSettings withSettings() { return new MockSettingsImpl().defaultAnswer(RETURNS_DEFAULTS); }