Kpina
Mocki to obiekty przechowujące wywołania metod. Nazywa się to dynamicznymi opakowaniami zależności używanymi w testach. Służy do rejestrowania i weryfikowania interakcji pomiędzy klasami Java. Próba jest znana jako najpotężniejsza i najbardziej elastyczna wersja testu podwójnego. Stosujemy metodę kpiny tzw kpina() .
Główną funkcją stosowania mocków jest to, że daje ona pełną kontrolę nad zachowaniem wyśmiewanych obiektów. Zwykle używa się obiektów próbnych weryfikacja zachowania . Termin zachowanie oznacza sprawdzenie poprawnych metod i ścieżek zastosowanych do obiektów.
Makiety są najczęściej tworzone przy użyciu biblioteki lub środowiska kpiącego, takiego jak Mockito, JMock i EasyMock. Służy do testowania dużego zestawu testów, w których kody pośredniczące nie są wystarczające. Jedną z podstawowych funkcji mock jest to, że możemy sprawdzić, ile razy dana metoda jest wywoływana.
Poniższy fragment kodu pokazuje, jak używać mock().
ToDoService doService = mock(ToDoService.class);
Końcówka
Stuby to obiekty przechowujące predefiniowane dane i wykorzystujące je do udzielania odpowiedzi podczas testów. Innymi słowy, kod pośredniczący to obiekt przypominający obiekt rzeczywisty z minimalną liczbą metod potrzebnych do przeprowadzenia testu. Stuby są używane, gdy nie chcemy używać obiektów, które dałyby odpowiedź z prawdziwymi danymi. Odcinek określany jest jako najlżejsza i najbardziej statyczna wersja testu dubletu.
Główne funkcje stubów to:
- Zawsze zwraca wstępnie zdefiniowane wyjście, niezależnie od wejścia.
- Można go używać do przypominania obiektów bazy danych.
- Stuby służą do zmniejszenia złożoności występującej podczas tworzenia rzeczywistych obiektów. Używane są głównie do występów weryfikacja stanu .
Szpieg
Szpiedzy są tzw częściowo drwiące obiekty . Oznacza to, że szpieg tworzy częściowy obiekt lub pół atrapę prawdziwego obiektu, kopiując lub szpiegując prawdziwe. W szpiegowaniu prawdziwy obiekt pozostaje niezmieniony, a my po prostu szpiegujemy określone metody. Innymi słowy, bierzemy istniejący (rzeczywisty) obiekt i zastępować Lub szpieg tylko niektóre z jego metod.
Szpiedzy przydadzą się, gdy mamy ogromną klasę pełną metod, a chcemy z niektórych metod wyśmiewać. W tym scenariuszu powinniśmy preferować używanie szpiegów, a nie kpin i skrótów. Wywołuje rzeczywiste zachowanie metody, jeśli metody nie są zaślepione.
W Mockito do tworzenia obiektów szpiegowskich używana jest metoda spy(). Pozwala nam wywołać metody normalne obiektu rzeczywistego. Poniższy fragment kodu pokazuje, jak używać metody spy().
List spyArrayList = spy(ArrayList.class);
Różnica między Stubem a Mockiem
Parametry | Końcówka | Kpina |
---|---|---|
Źródło danych | Źródło danych kodów pośredniczących jest zakodowane na stałe. Zwykle jest ściśle powiązany z zestawem testów. | Dane dotyczące makiet są konfigurowane przez testy. |
Stworzone przez | Stuby są zwykle pisane odręcznie, a niektóre są generowane przez narzędzia. | Makiety są zwykle tworzone przy użyciu bibliotek innych firm, takich jak Mockito, JMock i WireMock. |
Stosowanie | Stuby są używane głównie w prostych zestawach testów. | Makiety są używane głównie w dużych zestawach testowych. |
Graficzny interfejs użytkownika (GUI) | Stuby nie mają GUI. | Makiety mają GUI. |
Poniżej przedstawiono pewne różnice między próbą a szpiegiem:
Parametry | Kpina | Szpieg |
---|---|---|
Stosowanie | Makiety służą do tworzenia w pełni fałszywych lub atrap obiektów. Stosowany jest głównie w dużych zestawach testowych. | Szpiedzy służą do tworzenia obiektów częściowych lub pół-makiet. Podobnie jak w przypadku prób, szpiedzy są również wykorzystywani w dużych zestawach testowych. |
Domyślne zachowanie | Podczas używania obiektów próbnych domyślne zachowanie metod (gdy nie są stubbingowane) to nic nie robić (nic nie wykonuje). | Podczas korzystania z obiektów szpiegowskich domyślnym zachowaniem metod (kiedy nie są one stubbingiem) jest zachowanie metody rzeczywistej. |
W naszych poprzednich tutorialach omówiliśmy kilka przykładów karania, kpin i szpiegowania. Aby lepiej zrozumieć różnicę między karaniem, kpiną i szpiegowaniem, przejrzyj przykłady.