Wpis z mikrobloga

@mariecziek: Szukaj raczej ogólnie o testach jednostkowych, a nie stricte pod PHP. Filozofia pisania testowalnego kodu niczym nie różni się w PHP i innych językach jak Java czy inny C#.

Generalnie nie chodzi o to, jak pisać testy, tylko jak pisać kod, żeby się dało testy napisać.

No i jeszcze pytanie, czy interesuje Cię tylko pisanie unit testów, czy może jeszcze do tego TDD.
@zakopiak: Na razie chciałbym po prostu pisać testy do istniejącego kodu, żeby zrozumieć jak to wszystko działa (aktualnie siedzę nad refactoringiem istniejącego projektu legacy code -> coś normalnego: router, DI etc).
Sam w sumie doszedłem do wniosku, że kod ma być tak napisany, żeby dało się do niego napisać test.
Do TDD przejdę później, jak już będę ogarniał o co chodzi z testami.
@mariecziek: Podstawowa kwestia, jeśli chodzi o testowalność kodu, to Dependency Inversion (Inversion of Control) poprzez Dependency Injection + interfejsy.
W momencie, gdy zależności przekazujesz z zewnątrz, jesteś w stanie je łatwo zmockować w teście, lub podstawić inną implementację zależności z warstwy infrastruktury (np. implementacja "in-memory" jakiegoś storage'u), dzięki czemu nie jesteś uzależniony od bazy etc.

Z tego też wynika dlaczego Service Locator (wstrzykiwanie całego DIC zamiast poszczególnych zależności) to antypattern. W