• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Testy jednostkowe - phpunit

Object Storage Arubacloud
0 głosów
431 wizyt
pytanie zadane 6 stycznia 2020 w PHP przez pawel00 Nowicjusz (240 p.)
zamknięte 9 stycznia 2020 przez pawel00
Cześć. Mam taki problem, nie mam zielonego pojęcia jak zmockować obiekty. Otóż mam
komentarz zamknięcia: Rozwiązany problem
komentarz 6 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
Wrzuć kod normalnie i spróbuj przeredagować opis problemu bo nie za bardzo rozumiem.
komentarz 6 stycznia 2020 przez pawel00 Nowicjusz (240 p.)

@Ehlert, Poprawione :)

komentarz 6 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
Wrzuć proszę kod w bloczek.
komentarz 6 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
poszło

1 odpowiedź

0 głosów
odpowiedź 6 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
Nie mam pojęcia co pod spodem dzieje się z Mockiem. Klasa posiłek jest de facto zależnością kontrolera i jej instancja powinna być przekazana przez konstruktor, najlepiej interfejsem.
komentarz 6 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
edycja 9 stycznia 2020 przez pawel00
Tak tylko mi ten konstruktor nie działa, sypie się, nie mam zielonego pojęcia co w nim przekazać. jest jakiś inny sposób by to przetestować jednostkowo? Mogę po prostu bez mocka użyć tej metody i sprawdzić czy zwraca 1?
komentarz 6 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
To nie pisz własnego frameworka tylko skorzystaj z gotowego.
komentarz 6 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
Zrobiłem to zgodnie z tym

https://www.youtube.com/watch?v=OsCTzGASImQ&list=PLfdtiltiRHWGXVHXX09fxXDi-DqInchFD

 

Nie ma szans w ogóle na puszczenie testu jednostkowego? Może po prostu bez mock'a?
komentarz 6 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
  • Tutorial ma 6 lat. Od tamtego czasu zmieniło się bardzo dużo 
  • Jeżeli kodu nie możesz przetestować bez hacków, to jest on źle napisany
komentarz 6 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
edycja 9 stycznia 2020 przez pawel00
Wszystko można przetestować , można , tylko faktycznie w konstruktorze trzeba  powinna być przekazana instancja klasy
komentarz 7 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
Kolego, wrzuc kod na githuba, albo tutaj podaj wszystko, bo nie będę wróżyć co tam się dzieje.
komentarz 8 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
edycja 9 stycznia 2020 przez pawel00

O maj gad, nie wrzucałem klasy przez żadne require_once.. teraz działa, mock działa można wywoływać :) tylko problem jest taki, że ten konstruktor u mnie nie może istnieć, bo zawsze coś będzie próbowało coś do niego przypisać przy wywołaniu, a to ma tylko z bazy pobrać dane do wyrzucenia na widok i koniec... tak to zawsze będzie błąd postaci: Catchable fatal error: Argument 1 passed to Menu::__construct() must be an instance of Posilek, none given

Normalnie przez mock sie wykona, bo przekazuje sie obiekt mocka do klasy menu wiec kontruktor bedzie ok i dziala

komentarz 8 stycznia 2020 przez Ehlert Ekspert (212,670 p.)
Nie. Kod to kod. Piszesz tyle ile jest Ci potrzebne. Nie powinieneś wymyślać nowego tylko po to żeby dało się coś przetestować. Oczywiście co innego fabryki i abstrakcje do testów. Ale to co proponujesz jest antywzorcem.
komentarz 8 stycznia 2020 przez pawel00 Nowicjusz (240 p.)
edycja 9 stycznia 2020 przez pawel00
No tak, ale nie potrzebuje w ogóle konstruktora parsmetrowego, on nie jest ważny. Ten kontroler tylko pobiera dane i je przekazuje do widoku. Generalnie jest ok.

Podobne pytania

+1 głos
1 odpowiedź 235 wizyt
pytanie zadane 16 sierpnia 2021 w PHP przez pvalue Dyskutant (8,720 p.)
0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 19 maja 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
0 odpowiedzi 230 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...