[PHPUnit] Testowanie metody, która ma referencję |
[PHPUnit] Testowanie metody, która ma referencję |
27.12.2016, 17:29:00
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ł? |
|
|
29.12.2016, 15:47:00
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 ). Ten post edytował lukaskolista 29.12.2016, 15:56:20 |
|
|
30.12.2016, 07:20:47
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ś
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
30.12.2016, 19:50:37
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.
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 07:08 |