[PHP]Interfejsy ułatwiają testy jednostkowe. Dlaczego? |
[PHP]Interfejsy ułatwiają testy jednostkowe. Dlaczego? |
24.04.2017, 14:41:29
Post
#1
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) |
Czytam: Interfejsy ułatwiają testy jednostkowe.
W jakim sensie? W dublerach (mock, stub) i tak muszę zdefiniować użyte metody (i/lub co zwracają), a dla reszty metod zwracany jest null. |
|
|
24.04.2017, 17:22:45
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
W przypadku PHP nie są one może niezbędne jak w niektórych platformach, ale nadal mają kilka zalet.
1. Zamiast wykorzystywać mocki/stuby w testach możesz skorzystać z "głupich implementacji", a w przypadku jakiś usług operujących na zew. zasobach z implementacji operujących w pamięci. Czy to samo da się osiągnąć przy pomocy wspomniach mocków/stubów? Generalnie tak, ale z wygodą często nie ma to nic wspólnego. 2. Rozsądnie zaplanowane interfejsy - czyli takie z małą liczbą metod - pozwalają na zmniejszenie liczby zależnośći. Często można mieć klasę implementującą kilka interfejsów. W momencie gdy testujemy coś wymagającego tylko jednego interfejsu tej klasy zmniejsza się liczba metod które wymagają mocków/stabów. 3. Poleganie na tym, że "dla reszty metod zwracany jest null" jest bardzo niebezpieczne na dłuższą metę i sprawia, że Twoje testy muszą mieć jakąś świadomść wewnętrznej implementacji testowanej klasy - a to lekko negatywnie wpływa na stabilność samych testów. |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 21:57 |