logo

Metody Mockito

Framework Mockito udostępnia różnorodne metody, takie jak mock(), Verify(), When() itp., używane do testowania aplikacji Java. Korzystanie z tych predefiniowanych metod sprawia, że ​​testowanie jest bardzo łatwe.

Krótki opis metod Mockito znajduje się poniżej:

przykłady drzew binarnych

Metoda Mockito mock().

Służy do tworzenia fałszywych obiektów danej klasy lub interfejsu. Mockito zawiera pięć kpina() metody z różnymi argumentami. Jeśli nie przypisaliśmy niczego do mocków, zwrócą one wartości domyślne. Wszystkie pięć metod pełni tę samą funkcję kpiny z obiektów.

Poniżej znajdują się metody mock() z różnymi parametrami:

    metoda mock() z klasą:Służy do tworzenia fałszywych obiektów konkretnej klasy lub interfejsu. Jako parametr przyjmuje nazwę klasy lub interfejsu.
    Składnia: mock(klasa klasyToMock)metoda mock() z odpowiedzią:Służy do tworzenia fałszywych obiektów klasy lub interfejsu z określoną procedurą. Jest to zaawansowana metoda próbna, którą można zastosować podczas pracy ze starszymi systemami. Przyjmuje odpowiedź jako parametr wraz z nazwą klasy lub interfejsu. Odpowiedź to wyliczenie wstępnie skonfigurowanych próbnych odpowiedzi.
    Składnia: mock (klasa klasyToMock, odpowiedź domyślna)metoda mock() z MockSettings:Służy do tworzenia fałszywych obiektów z pewnymi niestandardowymi ustawieniami. Przyjmuje MockSettings jako dodatkowy parametr ustawień wraz z nazwą klasy lub interfejsu. MockSettings umożliwia tworzenie fałszywych obiektów z dodatkowymi ustawieniami.
    Składnia: mock(Class classToMock, MockSettings mockSettings)metoda mock() z ReturnValues:Umożliwia tworzenie mock obiektów danej klasy lub interfejsu. Teraz jest przestarzały, ponieważ ReturnValues ​​są zastępowane przez Answer.
    Składnia: mock(Klasa klasyToMock, ReturnValues ​​returnValues)metoda mock() z ciągiem:Służy do tworzenia fałszywych obiektów poprzez określenie fałszywych nazw. W debugowaniu nazewnictwo próbnych obiektów może być pomocne, podczas gdy używanie dużego i złożonego kodu jest złym wyborem.
    Składnia: mock (klasa klasyToMock, nazwa ciągu)

Poniższy fragment kodu pokazuje, jak używać kpina() metoda:

 ToDoService doService = mock(ToDoService.class); 

Metoda Mockito kiedy().

Umożliwia stosowanie metod stubbingowych. Należy go używać, gdy chcemy kpić, aby zwrócić określone wartości po wywołaniu określonych metod. W prostych słowach, ' Gdy wywoływana jest metoda XYZ(), Następnie zwróć ABC.' Używa się go najczęściej, gdy istnieje jakiś warunek do wykonania.

Składnia: kiedy(T methodCall)

Poniższy fragment kodu pokazuje, jak używać metody When():

 when(mock.someCode ()).thenReturn(5); 

W powyższym kodzie następnieReturn() jest najczęściej używany z Kiedy() metoda.

Metoda Mockito weryfikuj().

The zweryfikować() Metoda służy do sprawdzania, czy niektóre określone metody są wywoływane, czy nie. Krótko mówiąc, sprawdza pewne zachowanie, które miało miejsce raz w teście. Jest on używany na dole kodu testowego, aby zapewnić wywołanie zdefiniowanych metod.

Framework Mockito śledzi wszystkie wywołania metod wraz z ich parametrami w celu kpiny z obiektów. Po kpieniu możemy sprawdzić, czy zdefiniowane warunki zostały spełnione, czy nie, za pomocą metody Verify(). Ten rodzaj testów jest czasami nazywany testy behawioralne. Sprawdza, czy metoda została wywołana z właściwymi parametrami, zamiast sprawdzać wynik wywołania metody.

Metoda Verify() służy także do testowania liczby wywołań. Możemy więc przetestować dokładną liczbę wywołań, używając metody metoda razy, metoda co najmniej raz, I co najwyżej metodą za wyśmiewaną metodę.

W klasie Mockito dostępne są dwa typy metod weryfikacji(), które podano poniżej:

    metoda weryfikacji():Sprawdza, czy określone zachowanie miało miejsce raz.
    Składnia: zweryfikuj (próbuję)metoda Verification() z VerificationMode:Sprawdza, czy jakieś zachowanie miało miejsce co najmniej raz, dokładną liczbę razy lub nigdy.
    Składnia: zweryfikować (próba T, tryb VerificationMode)

Metoda Mockito spy().

Mockito zapewnia metodę częściowego kpiny z obiektu, znaną jako szpieg metoda. Podczas korzystania z metody szpiegowskiej istnieje prawdziwy obiekt i z tego prawdziwego obiektu tworzone są szpiegi lub odcinki pośrednie. Jeśli nie zatrzymamy metody za pomocą programu spy, wywoła to rzeczywiste zachowanie metody. Główną funkcją metody spy() jest zastąpienie określonych metod rzeczywistego obiektu. Jedną z funkcji metody spy() jest weryfikacja wywołania określonej metody.

W klasie Mockito dostępne są dwa typy metod spy():

    metoda szpieg():Tworzy szpiega prawdziwego obiektu. Metoda szpiegowska wywołuje metody prawdziwe, chyba że są one zawężone. Z prawdziwych szpiegów powinniśmy korzystać ostrożnie i okazjonalnie, na przykład podczas pracy ze starszym kodem.
    Składnia: szpieg (obiekt T)metoda spy() z klasą:Tworzy obiekt szpiegowski w oparciu o klasę, a nie obiekt. Metoda spy(obiekt T) jest szczególnie przydatna do szpiegowania klas abstrakcyjnych, ponieważ nie można ich utworzyć.
    Składnia: szpieg(Klasa klasyToSpy)

Poniższy fragment kodu pokazuje, jak używać metody spy():

 List spyArrayList = spy(ArrayList.class); 

Metoda Mockito reset().

Do resetowania prób służy metoda Mockito reset(). Stosowany jest głównie do pracy z próbami wstrzykiwanymi do kontenerów. Zwykle metoda reset() skutkuje długim kodem i słabymi testami. Lepiej jest tworzyć nowe makiety, niż używać metody reset(). Dlatego metoda reset() jest rzadko używana w testach.

Sygnatura metody reset() to:

przekonwertuj ciąg na obiekt json
 public static void reset(T ... mocks) { MOCKITO_CORE.reset(mocks); } 

Mocki, aby zweryfikować metodę NoMoreInteractions().

Służy do sprawdzenia, czy któraś z podanych makiet ma jakieś niezweryfikowane interakcje. Możemy użyć tej metody po sprawdzeniu wszystkich prób, aby upewnić się, że na próbach nie wywołano nic innego. Wykrywa także niezweryfikowane wywołania, które mają miejsce przed metodą testową, na przykład w setup(), metodzie @Before lub konstruktorze. Jest to metoda opcjonalna i nie musimy jej używać w każdym teście.

Sygnatura metody VerifyNoMoreInteractions() to:

 public static void verifyNoMoreInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); } 

Mocki, aby zweryfikować metodę ZeroInteractions().

Sprawdza, czy na podanych próbach nie wystąpiła żadna interakcja. Wykrywa także wywołania, które miały miejsce przed metodą testową, na przykład w setup(), metodzie @Before lub konstruktorze.

Sygnatura metody VerifyZeroInteractions() to:

 public static void verifyZeroInteractions(Object... mocks) { MOCKITO_CORE.verifyNoMoreInteractions(mocks); } 

Metoda Mockito doThrow().

Używa się go, gdy należy przerwać metodę void w celu zgłoszenia wyjątku. Tworzy nową instancję wyjątku dla każdego wywołania metody. W klasie Mockito dostępne są dwa typy metod doThrow() o różnych parametrach, jak pokazano poniżej:

    metoda doThrow() z Throwable:Tej metody używamy, gdy chcemy przerwać metodę void z wyjątkiem. Składnia: doThrow(Można rzucić doBeThrown)
    Sygnatura metody doThrow() to:
 public static Stubber doThrow(Throwable toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsException(toBeThrown)); } 
    metoda doThrow() z klasą:Tej metody używa się, gdy chcemy przerwać metodę void w celu zgłoszenia wyjątku określonej klasy.
    Składnia: doThrow(Klasa doBeThrown)
    Sygnatura metody doThrow() to:
 public static Stubber doThrow(Class toBeThrown) { return MOCKITO_CORE.doAnswer(new ThrowsExceptionClass(toBeThrown)); } 

Mockito metoda doCallRealMethod().

Używamy go, gdy chcemy wywołać rzeczywistą implementację metody. Innymi słowy, służy do tworzenia częściowych makiet obiektu. Używa się go w rzadkich sytuacjach, na przykład przy wywoływaniu metod rzeczywistych. Jest podobna do metody spy() i jedyną różnicą jest to, że skutkuje złożonym kodem.

Sygnatura metody doCallRealMethod() to:

 public static Stubber doCallRealMethod() { return MOCKITO_CORE.doAnswer(new CallsRealMethods()); } 

Metoda Mockito doAnswer().

Używa się go, gdy chcemy zastąpić metodę void ogólnym typem odpowiedzi. Sygnatura metody doAnswer() to:

 public static Stubber doAnswer(Answer answer) { return MOCKITO_CORE.doAnswer(answer); } 

Metoda Mockito doNothing().

Służy do ustawiania metod void, aby nic nie robiły. Metodę doNothing() stosuje się w rzadkich sytuacjach. Domyślnie metody void w próbnych instancjach nic nie robią, tj. nie są wykonywane żadne zadania.

Sygnatura metody doNothing() to:

 public static Stubber doNothing() { return MOCKITO_CORE.doAnswer(new DoesNothing()); } 

Metoda Mockito doReturn().

Używa się go w tych rzadkich przypadkach, gdy nie możemy użyć Mockito.when(obiekt). Do stubbingu zawsze zaleca się metodę Mockito.when(object), ponieważ jest ona bezpieczna dla typu argumentu i bardziej czytelna w porównaniu z metodą doReturn().

przejście wewnętrzne

Sygnatura metody doReturn() to:

 public static Stubber doReturn(Object toBeReturned) { return MOCKITO_CORE.doAnswer(new Returns(toBeReturned)); } 

Metoda Mockito inOrder().

Służy do tworzenia obiektów pozwalających na weryfikację makiet w określonej kolejności. Weryfikacja wykonywana po kolei jest bardziej elastyczna, ponieważ nie musimy weryfikować wszystkich interakcji. Musimy zweryfikować tylko te interakcje, które są zainteresowane testowaniem (w kolejności). Możemy również użyć metody inOrder() do utworzenia obiektu inOrder przekazującego makiety, które są istotne dla weryfikacji zamówienia.

Sygnatura metody Mockito.inOrder() to:

 public static InOrder inOrder(Object... mocks) { return MOCKITO_CORE.inOrder(mocks); } 

Mockito zignorował metodęStubs().

Służy do ignorowania metod stubbingowych danych prób w celu weryfikacji. Jest to przydatne w przypadku metod VerifyNoMoreInteractions() lub weryfikacji inOrder(). Pomaga także w uniknięciu zbędnej weryfikacji przerwanych połączeń.

Sygnatura metody ignorowanejStubs() to:

 public static Object[] ignoreStubs(Object... mocks) { return MOCKITO_CORE.ignoreStubs(mocks); } 

Metoda Mockito razy().

Służy do sprawdzenia dokładnej liczby wywołań metod, czyli deklaruje, ile razy metoda jest wywoływana. Sygnatura metody times() to:

 public static VerificationMode times(int wantedNumberOfInvocations) { return VerificationModeFactory.times(wantedNumberOfInvocations); } 

Metoda Mockito Never().

Służy do sprawdzenia, czy interakcja nie miała miejsca. Sygnatura metody Never() to:

 public static VerificationMode never() { return times(0); } 

Metoda Mockito atLeastOnce().

Służy do weryfikacji wywołania co najmniej raz, co oznacza, że ​​metoda powinna zostać wywołana przynajmniej raz.

Sygnatura metody atLeastOnce() to:

 public static VerificationMode atLeastOnce() { return VerificationModeFactory.atLeastOnce(); } 

Metoda Mockito atLeast().

Służy do weryfikacji wywołania co najmniej x razy. Np. podana atLeast(3) oznacza, że ​​metoda wywoła minimum trzy razy.

Sygnatura metody atLeast() to:

 public static VerificationMode atLeast(int minNumberOfInvocations) { return VerificationModeFactory.atLeast(minNumberOfInvocations); } 

Metoda Mockito atMost().

Służy do weryfikacji wywołania maksymalnie x razy. Np. podane atMost(3) oznacza, że ​​metoda wywoła się maksymalnie trzy razy.

Sygnatura metody atMost() to:

 public static VerificationMode atMost(int maxNumberOfInvocations) { return VerificationModeFactory.atMost(maxNumberOfInvocations); } 

Metoda Mockito wywołuje().

Umożliwia bezinteresowną weryfikację kolejności. Można jej używać wyłącznie z metodą weryfikacji inOrder(). Na przykład inOrder.verify(mock, call(3)).xyzMethod('...');

Sygnatura metody call() to:

 public static VerificationMode calls( int wantedNumberOfInvocations ){ return VerificationModeFactory.calls( wantedNumberOfInvocations ); } 

Metoda Mockito only().

Sprawdza, czy podana metoda była jedyną wywołaną metodą. Sygnatura metody only() to:

okno.otwórz javascript
 public static VerificationMode only() { return VerificationModeFactory.only(); } 

Metoda limitu czasu Mockito().

Pozwala Mockito przeprowadzić weryfikację z przekroczeniem limitu czasu. Instruuje weryfikację, aby czekała przez określony czas na konkretną interakcję, zamiast natychmiastowo zakończyć się niepowodzeniem. Może być przydatne do testowania w istniejących sytuacjach.

Metoda timeout() różni się od metody after() tym, że metoda after() czeka przez cały okres, chyba że zostanie zadeklarowany wynik końcowy, natomiast metoda timeout() zatrzyma się natychmiast po zakończeniu weryfikacji. Jest rzadko używany w testach.

Sygnatura metody timeout() to:

 public static VerificationWithTimeout timeout(long millis) { return new Timeout(millis, VerificationModeFactory.times(1)); } 

Metoda Mockito after().

Pozwala Mockito na weryfikację w zadanym okresie czasu. Mówiliśmy już, że metoda after() różni się od metody timeout().

Sygnatura metody after() to:

 public static VerificationAfterDelay after(long millis) { return new After(millis, VerificationModeFactory.times(1)); } 

Mockito zatwierdź metodęMockitoUsage().

Służy do jawnego sprawdzania stanu struktury w celu wykrycia nieprawidłowego użycia struktury Mockito. Jest to opcjonalna funkcja Mockito, ponieważ cały czas sprawdza użycie. Zarówno wbudowany moduł uruchamiający (MockitoJUnitRunner), jak i reguła (MockitoRule) wywołują metodę validMockitoUsage() po każdej metodzie testowej.

Sygnatura metody validMockitoUsage() to:

 public static void validateMockitoUsage() { MOCKITO_CORE.validateMockitoUsage(); } 

Mockito z metodąSettings().

Służy do tworzenia makiet z dodatkowymi ustawieniami makiet. Należy go używać sporadycznie podczas testów. Zamiast używać metody withSettings(), utwórz proste testy za pomocą prostych prób. Głównymi powodami używania MockSettings są:

  • Korzystając z MockSetting, możemy w razie potrzeby łatwo dodać inne próbne ustawienia.
  • Łączy różne próbne ustawienia bez psucia kodu.

Sygnatura metody withSettings() to:

 public static MockSettings withSettings() { return new MockSettingsImpl().defaultAnswer(RETURNS_DEFAULTS); }