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

Testy jednostkowe - final + interfejsy vs non final

0 głosów
402 wizyt
pytanie zadane 14 września 2020 w PHP przez Assasz Nałogowiec (30,460 p.)

Hej,

Stosuję w projekcie (pewna biblioteka PHP) konwencję klas finalnych (czyli wszystkie klasy, których nie zamierzam rozszerzać ustawiam jako final) i teraz mam pewną zagwozdkę przy pisaniu testów jednostkowych do takich klas.

Jak wiadomo, nie da się mockować klas finalnych, a takie mocki są mi potrzebne. I tutaj są dwa rozwiązania:

  • Do każdej klasy finalnej dostarczam interfejs (zatem doszłaby cała masa interfejsów) LUB
  • Rezygnuję z klas finalnych ;)

Jak wy podchodzicie do takich testów? Jeśli macie jeszcze inne pomysły, to chętnie poznam :)

Pozdrawiam.

komentarz 14 września 2020 przez Ehlert Ekspert (215,210 p.)

Domyślam się że Doctrine się zbuntował przy encjach laugh

2
komentarz 14 września 2020 przez Assasz Nałogowiec (30,460 p.)
Nie zbuntował, bo nie korzystam z Doctrine w tym projekcie ;) Ale pewnie by się zbuntował, gdybym ustawił encję jako final :D

1 odpowiedź

+4 głosów
odpowiedź 14 września 2020 przez RobertJG Użytkownik (520 p.)
wybrane 14 września 2020 przez Assasz
 
Najlepsza
Oznaczanie klas jako finalne to bardzo dobra praktyka :) ale tworzenie interfejsu dla każdej z nich nie jest praktycznym rozwiązaniem. Dodaje link do eleganckiego obejścia problemu:

https://tomasvotruba.com/blog/2019/03/28/how-to-mock-final-classes-in-phpunit/
komentarz 14 września 2020 przez Assasz Nałogowiec (30,460 p.)
Oo, to brzmi jak rozwiązanie :) Dzięki wielkie.

Podobne pytania

0 głosów
1 odpowiedź 422 wizyt
pytanie zadane 1 września 2020 w Java przez amtrax Dyskutant (9,630 p.)
0 głosów
1 odpowiedź 981 wizyt
pytanie zadane 19 maja 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)
+1 głos
2 odpowiedzi 714 wizyt
pytanie zadane 22 kwietnia 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)

93,766 zapytań

142,722 odpowiedzi

323,373 komentarzy

63,360 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...