Interfejsy a testowanie jednostkowe
Założenie: Pokażemy, jak interfejsy ułatwiają testowanie jednostkowe poprzez tworzenie mocków.
Krok po kroku:
- Definicja interfejsu: Zdefiniujmy prosty interfejs dla klasy wysyłającej wiadomości e-mail.
- Implementacja interfejsu: Stwórzmy klasę implementującą ten interfejs.
- Tworzenie mocka: Stwórzmy mocka dla interfejsu
EmailSender
. - Testowanie: Teraz możemy testować kod używając mocka.
Ten kod definiuje interfejs EmailSender
z metodą sendEmail
, która przyjmuje adresata, temat i treść wiadomości, a zwraca wartość logiczną wskazującą na sukces lub porażkę.
Klasa RealEmailSender
implementuje interfejs EmailSender
i zawiera rzeczywistą logikę wysyłania emaila. W tym przykładzie zwracamy `true` dla uproszczenia.
Klasa MockEmailSender
jest prostym mockiem, który symuluje zachowanie EmailSender
bez rzeczywistego wysyłania emaili. To pozwala na testowanie kodu bez zależności od zewnętrznych usług.
W tym kroku używamy mocka $mockSender
w testach jednostkowych, izolując kod od rzeczywistego wysyłania emaili.
Ten przykład pokazuje podstawowe zastosowanie interfejsów w kontekście testowania jednostkowego. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi strategiami testowania.