Czym jest mockowanie?

Prezentacja

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mockowanie?

Czym jest mock?

Mock to w prostych słowach “sztuczna wersja” jakiegoś elementu w systemie, który symuluje jego zachowanie. Jest to obiekt lub funkcja stworzona specjalnie po to, aby zastąpić prawdziwą zależność, np. serwer API, bazę danych czy inną funkcjonalność, której działanie trudno lub nieopłacalnie testować w normalnych warunkach.

Mock może:

  • Symulować odpowiedzi
    Na przykład, zamiast rzeczywistego serwera zwracać określone dane, jakby pochodziły z prawdziwego API.
  • Śledzić wywołania
    Możesz sprawdzić, czy i jak dana funkcja była wywołana (np. ile razy, z jakimi argumentami).
  • Symulować błędy
    Umożliwia sprawdzenie, jak aplikacja reaguje na różne problemy, np. brak połączenia z serwerem.

Czym jest mockowanie?

Mockowanie to proces tworzenia i używania mocków podczas testowania oprogramowania. Polega na zastępowaniu prawdziwych zależności (np. baz danych, serwerów, zewnętrznych usług) sztucznymi wersjami, które symulują ich działanie w określony sposób.

Dlaczego mockujemy?

  • Testowanie w izolacji
    Możesz skupić się na jednym fragmencie kodu, bez wpływu innych elementów systemu.
  • Symulowanie różnych scenariuszy
    Na przykład: co się stanie, jeśli serwer zwróci błąd?
  • Oszczędność czasu i zasobów
    Testy są szybsze, bo nie musisz uruchamiać prawdziwych zależności (np. serwera API).

Kiedy warto stosować mockowanie?

Kiedy powinniśmy raczej unikać mockowanie?

Dla zainteresowanych – Mock a Stub, Fake, Spy, Dummy

Stub, Mock, Fake, Spy, Dummy to różne rodzaje “fałszywych” obiektów używanych w testowaniu, które symulują zachowanie prawdziwych zależności. Choć są podobne, różnią się funkcją i poziomem złożoności.

Stub

Stub to prosty obiekt testowy, który dostarcza z góry określone odpowiedzi na zapytania. Nie śledzi, jak był używany ani nie testuje interakcji.

  • Przykład: Tworzysz stub, który zawsze zwraca {"name": "John", "age": 30}.
  • Kiedy używać? Gdy chcesz zapewnić stabilne dane dla testów, ale nie interesuje Cię, czy metoda była wywołana lub jakimi argumentami.

Mock

Mock to bardziej zaawansowany obiekt, który symuluje zachowanie, ale dodatkowo może śledzić interakcje – np. ile razy został wywołany, z jakimi argumentami, czy w odpowiedniej kolejności.

  • Przykład: Sprawdzasz, czy metoda saveUser() została wywołana oraz jakie dane zostały przekazane.
  • Kiedy używać? Gdy chcesz przetestować interakcję między komponentami.

Fake

Fake to uproszczona implementacja rzeczywistego obiektu, która działa podobnie do oryginału, ale jest prostsza i często działa tylko w pamięci.

  • Przykład: Fake bazy danych przechowuje dane w tablicy w pamięci zamiast w prawdziwej bazie SQL.
  • Kiedy używać? Gdy chcesz mieć działającą wersję zależności, ale bez dużego narzutu.

Spy

Spy to coś pomiędzy stubem a mockiem. Śledzi wywołania jak mock, ale pozwala też wywołać prawdziwą implementację funkcji (jeśli chcesz).

  • Przykład: Śledzisz, ile razy metoda calculateTotal() została wywołana, ale chcesz, aby działała zgodnie z jej rzeczywistym kodem.
  • Kiedy używać? Gdy chcesz monitorować, co dzieje się z metodą, ale jednocześnie chcesz, aby jej prawdziwe działanie było zachowane.

Dummy

Dummy to bardzo prosty obiekt, który istnieje tylko po to, aby wypełnić wymagane miejsce w kodzie – nie jest faktycznie używany w testach.

  • Przykład: Jeśli funkcja wymaga obiektu użytkownika, ale jego właściwości nie są istotne w teście, możesz podać new User("dummy").
  • Kiedy używać? Gdy potrzebujesz dostarczyć obiekt, ale jego zawartość lub zachowanie nie mają znaczenia dla testu.

Podsumowanie różnic

Typ Działanie Śledzi interakcje?
Stub Zwraca z góry określone dane. Nie
Mock Zwraca dane i sprawdza, jak obiekt był używany. Tak
Fake Upraszcza prawdziwą implementację (działa jak oryginał, ale szybciej/prościej). Nie
Spy Śledzi wywołania i ewentualnie korzysta z prawdziwej implementacji. Tak
Dummy Obiekt tylko do wypełnienia wymagań (nieużywany w teście). Nie

Podsumowanie:

  • Stub: Prosty dostawca danych.
  • Mock: Tester interakcji.
  • Fake: Uproszczony oryginał.
  • Spy: Podglądacz rzeczywistej funkcji.
  • Dummy: Obiekt zastępczy, który nie ma wpływu na działanie danego elementu.

Zewnętrzne linki i zasoby

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *