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.