Użyteczność programowania funkcyjnego w testowaniu z biblioteką Phunc, specyfika, metodyka, niedogodności, testowanie
Biblioteka Phunc została stworzona wedle idei:
jedna klasa = jedna odpowiedzialność, jedna metoda, zdefiniowane wcześniej parametry wejściowe i wyjściowe (interface)
Specyfika
Contents
W praktyce daje to rezultat Single Responisbility i Dependency Injection
Użyteczność programowania funkcyjnego w testowaniu z metodyką Phunc
Korzyści programowania funkcyjnego
Dalsze korzyści to łatwiejsza implementacja nowych funkcjonalności, gdyż można łatwo korzystać z już istniejącego kodu,
gdyż jest stworzony w małych elementach, jak klocki, które nie trzeba konfigurować jak klasy z wieloma atrybutami, i uczyć się ich obsługi.
Tutaj wystarczy tylko dostarczyć odpowiedni typ danych, jego porawność definiuje walidacja w kontekście, więc jeśli istnieje to można w ciemno użyć kod który może być tworzony w innym miejscu i czasie a potem razem spięty z innym modułem.
Niedogodności
Niedogodnośći jakie powstaje przy stosowaniu tego rozwiązania wynikają bezpośrednio z języka PHP:
- brak wsparcia silnego typowania i programowania funkcyjnego
Aby stworzyć Nowy projekt z Phunc go Testować, potrzebne jest mniej czasu niż zwykle, na tworzenie unit testów.
Gdyż w naturalny sposób sklada się on z już istniejących mniejszych części, które mają swój unit test, więc testowany jest tylko nowy kod.
Samo stosowanie interfejsów daje jasne informacje o sposobie wielo-użycia kodu i wzorce do użycia jak klocki.
Ponadto łatwiejsze staje się koncepcyjne uchwycenie TDD i BDD, ponieważ operamy się o znane elementy i w ten sposób łatwiej je zdefiniować i zbudować całość.
Testowanie
polecam Codeception, poniżej trochę więcej informacji o tym jak do testowania przystąpić:
http://codeception.com/09-04-2015/using-codeception-for-symfony-projects.html
![Share on Facebook Facebook](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/facebook.png)
![Share on Twitter twitter](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/twitter.png)
![Share on Reddit reddit](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/reddit.png)
![Pin it with Pinterest pinterest](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/pinterest.png)
![Share on Linkedin linkedin](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/linkedin.png)
![Share by email mail](https://tom.sapletta.com/wp-content/plugins/social-media-feather/synved-social/image/social/regular/96x96/mail.png)