[TDD vs. MVC] czy ktoś może polecić książkę?

0

mnóstwo jest książek poświęconych TDD dla Javy. W pracy jednak używamy php i frameworka opartego na wzorcu MVC. Dlatego próbuję znaleźć coś, co w najpełniejszy sposób zademonstruje TDD w takim konkretnym przypadku na odpowiednich przykładach.

Znacie coś takiego?

0

I tu pojawia się całkowite nie zrozumienie tematu testów jednostkowych. Test służy do sprawdzenia pojedynczej jednostki kodu. W przypadku php jest o funkcja/metoda. Testowaniu powinny podlegać właśnie takie elementy. Użycie frameworka opartego o MVC nie powinno powodować konieczności wiązania testów z tym frameworkiem. Wręcz przeciwnie testy powinny w jak największym stopniu być niezależne od innych wykorzystywanych rozwiązań.

Taki mały framework do testów. Jest dużo fajnych przykładów.
http://www.phpunit.de/

0

e co ma mvc to tdd czy bdd [???]

MVC to wzorzec dla aplikacji, a TDD/BDD to metodologia, masz kontrolery/modele i robisz do nich testy jednostkowe/behawioralne tyle i az tyle, z dokumentacji od phpunita dowiesz sie wiecej, jak uzywasz zenda to polecam zend_test

0

Niby nie ma nic, ale co innego zrobić unit testy dla modeli (prawie banalne) a co innego dla kontrolerów i widoków. Poza tym można znaleźć dużo przykładów testów jednostkowych dla jakiejś klasy "akademickiej", a mnie chodzi o przykładowy flow pracy z frameworkiem MVC przy pomocy TDD. Po prostu jestem ciekaw "jak to robią inni"

@Koziołek - nie napisałem nigdzie, że rozumiem w 100% ideę testów jednostkowych. Coś tam wiem, wiele jeszcze nie wiem. Szukam książki, bo męczące jest dla mnie już odsiewanie śmieci z netu. Jeśli jest możliwość wyboru, to taką książkę bym kupił. Tylko, że żadnej nie znalazłem.

@cepa - łatwo powiedzieć, że masz kontroler to piszesz unit testy. Ale w większości wypadków kontroler wywołuje metody modeli i renderuje widok - nie wiem jak zrobić dobry unit test, żeby był dobrym unit testem.

0

@id02009, powiem tak. Do php książek nie ma, bo powiedzmy sobie szczerze, jakieś 90% kodu tworzonego w php jest robione przez osoby początkujące, które mało o życiu wiedzą. Poczytałem twojego bloga i zakładam, że ogarniasz temat testów i chcesz je ładnie spiąć z Cake. Przejrzałem kod jaki jest w projekcie i moja uwagę zwrócił pod projekt CakePHP test suit: http://cakeforge.org/frs/?group_id=62&release_id=101
Ja bym zaczął od tego.

Co do książek o testowaniu to fajna jest http://oreilly.com/catalog/9780596006891 miałem ją w ręku jest dość uniwersalna. Warto popatrzyć też na półkę z Javą, bo ideologia testów jest w każdej książce nieźle wytłumaczona.

Jeszcze jedna rzecz. Jeżeli chcesz coś naprawdę życiowego to ściągnij źródła SpringFramework. Obecnie jest to chyba najbardziej rozbudowane narzędzie w którym stosuje się TDD.

0
id02009 napisał(a)

@cepa - łatwo powiedzieć, że masz kontroler to piszesz unit testy. Ale w większości wypadków kontroler wywołuje metody modeli i renderuje widok - nie wiem jak zrobić dobry unit test, żeby był dobrym unit testem.

robisz suite, i jak masz dispatcher to tworzysz sztuczny request a jak nie to tworzysz instancje kontrolera, przechwytujesz widok i robisz expect test czyli chociazby assertContains z phpunit, nie napisalem ze to latwe bo sam mam z tym problemy, ale imho jak masz rozdzielona wartswe logiki od warstwy odpowiedzialnej za laczenie kontrolera z modelem i widokiem to expect test widoku powinien wystarczyc

http://framework.zend.com/manual/en/zend.test.phpunit.html#zend.test.phpunit.testing

//edit
jak uzywasz phpunit + xdebug to tam jest Od razu generowanie code coverage, zajebiste to jest o tyle ze wiesz dokladnie ktore fragmenty kodu masz przetestowane a ktore wymagaja pokrycia, przyjzyj sie temu i Od razu bedziesz wiedzial czy twoj test jest dobrym unittestem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1