![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Mam sytuację, w której jest metoda a jeden z jej argumentów idzie przez referencję. Mój problem polega na tym, że ta referencja zwraca IDki, które później są sprawdzane w innej metodzie (tej, która wywołała) czy IDki są w tablicy, jeśli tak to zwróć true. Poniżej przedstawiam schemat (nazwy klas, metod - zmyślone na potrzeby tematu, flow jest jednak ten sam):
I teraz dla #44, #45 linijki nie wiem co mam wstawić, aby metoda, którą mockuje przekazywała w sobie też referencję z testowymi danymi, próbowałem coś w stylu:
ale to nie działa, ponieważ jak zrobię sobie: przed tym return w klasie: Prepare to cały czas mam pustą tablice - w ogóle nie dodało mojego "51" (jako ID) w konsekwencji mam, że test nie przeszedł. Ma ktoś jakiś pomysł? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłeś idealny przykład na to, dlaczego nie należy używać referencji (nie mówię o obiektach, które mają referencje tworzone przez mechanizm języka).
http://docs.mockery.io/en/latest/reference...behaviours.html
Nie znam mockery, ale być może linijka if (!is_array($data)) return false; jest jednak istotna (php to bardzo magiczny język z wieloma magicznie działającymi bibliotekami (IMG:style_emoticons/default/smile.gif) ). Ten post edytował lukaskolista 29.12.2016, 15:56:20 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@wujek2009 teoria jak i praktyka mówi że jeżeli masz problem z przetestowaniem kodu to najprawdopodobniej napisałeś go źle. Na twoim miejscu nie tracił bym czasu na szukanie rozwiązania odnośnie testowania a skupił się na przemyśleniu kodu który napisałeś
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Panowie za odpowiedź. Jeśli chodzi o samą prezentację kodu to wygląda to tak, że do istniejącego rozwiązania muszę dopisać testy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 18:25 |