Wpis z mikrobloga

mirki z
#programowanie i #php #phpunit

chcę podnieść jakość dostarczanego przeze mnie kodu i postanowilem nauczyc sie pisac testy inyegracyjne do tej pory pisałem tylko funkcjonalne/jednostkowe.

Mam pewien problem, próbuje otestowac kod gadający restowo z innym mikroserwisem.

no i metodę uderzajaca do serwisu chcialbym zamockowac by zwracala mi odpowiednie responsy, by sprawdzic czy moj kod odpowiednio obsluguje to. nie bardzo mam pojecie jak to zrobic.

kawalek pseudokodu

public static function wyslijMeila{

helper::pobierzMeilaZKolejki()
helper::przygotujPayload()
serviceApi::uderzDoApiWyslijMeila()
helper::obslozResponse()

}

i chce otestowac metode wyslijMeila.
Problemem jest to ze wszystmie metody gadajace z Api sa statyczne.
jak zrobic mocka by testujac cala metode wyslijMeila metoda uderzDoApiWyslijMeila zwrocila mi cos konkretnego np ['code'=>200, 'message' => 'OK']

krotko mowiac mam problem by zrobic mocka do tej metody i byl wykonywalny wewnatrz metody wyslijMeila.
  • 6
@stacktrace: zaszłość historyczna projektu i wieczny brak funduszy by przerobić 3/4 projektu i trwa wolne wyciąganie na dobre drogi.
poprzednicy nie przejmowali się zbytnio testami, wystarczyło im ze tester manualny przeklikał.

w Każdym bądź razie jak nie uda mi sie znaleźć malo czasochlonnego rozwiązania by zamockowac statica, będę musial przerobic na zwykłą metodę i uzywac w kontekscie obiektu.
@Hipodups: + static mocks - unit podstawi wtedy swoją klasę przez autoloader i mock statica zadziała, warunek zaznaczony w dokumentacji że nie możesz "użyć" tej klasy zanim postawisz mocka