Wpis z mikrobloga

Wiem, że tu są fani #php Symfony.
Wy naprawdę piszecie takie testy "jednostkowe" jak na tej oficjalnej demo apce? https://github.com/symfony/demo/tree/main/tests
Takie coś pisałem jak uczyłem się pisać testy i nie umiałem mockować zależności. Testy poprzez nazwy plików i rozkład analogiczny do folderów w aplikacji chcą być jednostkowe. Ale nie są i nie wiadomo co to jest, po co to jest?
Na O'reilly ostatnia książka do Symfony jest wydana w 2016 a dokumentacja frameworka nie zastąpi dobrej książki.

Naprawdę nie wiem skąd zachwyty nad tym frameworkiem. W Symfony 3 jestem w stanie zrozumieć bo w swoim czasie nie miała dużej konkurencji i masa aplikacji w tym powstała, bundli. Ale Symfony 4, 5, 6 w tych czasach? Jakie to ma zalety?
#programowanie
  • 11
@tos-1_buratino: to jakie było pytanie w sumie? Do którego testu masz wąty? Możesz zadać pytanie na gitcie i Ci odpowiedzą dlaczego tak, a nie inaczej

Książka o Symfony była od Nobacka i niedawno jest od Potenciera bodaj

Symfony to kalka z Javowego Springa. I chyba najpopularniejszy framework dla dojrzałych pehapowców. Celowo nie wspominam Laravela
@tos-1_buratino: Po pierwsze odpowiedź brzmi: tak, czasami.

Po drugie nie myl testów jednostkowych z testami funkcjonalnymi.

W tych pierwszych testujesz pojedynczą klasę – SWÓJ kod, którym „gadasz” z innym swoim kodem. I wtedy mockujesz sobie zależności, bo chcesz osiągnąć test swojej klasy, a zależności testujesz osobno również jednostkowo.

Natomiast w testach funkcjonalnych testuje się już pewien większy zestaw kodu – chodzi o zobaczenie efektu interakcji między całymi zestawami klas, komponentami. Kiedy
@tos-1_buratino: a, jeszcze post scriptum

nie oczekuj od frameworka, że wyjaśni ogólne zasady programowania czy nawet jakieś dobre praktyki

kod przykładowy symfony ma pokazać jak używa się symfony, a nie jakie pisać testy – oni pokazują Ci gdzie jest taki test, jakie są podstawowe narzędzia, a nie że tak docelowo mają wyglądać TWOJE testy

tak samo w dokumentacji masz typowe crudowanie z anemic domain model [gołe gettery/settery] – symfony chce pokazać
@tos-1_buratino: Tutaj jest jakaś dziwna struktura katalogów. Zazwyczaj robię foldery Application, Integration i Unit, żeby było wiadomo, jakie to są testy, a nie jakieś pomieszane. Robię też klasy abstrakcyjne, które dziedziczą np. po WebTestCase i KernelTestCase. W tym przykładzie co podałeś, nawet nie wiadomo czy to są unit, functional czy integration. Megamix wszystkiego.

Unit w symofny to masz takie jak tutaj:
https://symfony.com/doc/current/testing.html#unit-tests

Klasy dziedziczą wtedy po PHPUnit\Framework\TestCase, a w tym twoim
Czyli co polecasz zamiast Symfony w #php?

Inny framework w którym naklepałem tysiące testów dziedziczących po PHPUnit\Framework\TestCase. Laravel. Wiele rzeczy nim to dokładne to samo co Symfony ale dokumentacja i materiały są o wiele bardziej przystępne.

@rmweb:
@tos-1_buratino: A zdajesz sobie sprawę, dlaczego w Laravel wiele rzeczy jest podobnie? To jest po prostu nakładka na Symfony i szczerze mówiąc, trochę w tym programowałem, ale męczyło mnie to. Ładniejszy kod w Symfony jest, a ja jestem trochę estetą, a może bardziej niż trochę. No i nie oceniałbym frameworka po testach. Testy to tylko przykra konieczność. Nawet wolę, kiedy ktoś za mnie je zrobi, ale nie zawsze się da.