Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Piotr Śliwa, dodany: 25.03.2016 11:05, tagi: php

Jakiś czas temu rozpisywałem się o mockach. Teraz pora na krótką opowiastkę o tym samym, ale z innej perspektywy.

Przez ostatni rok piszę w scali, nie napisałem w niej ani jednego mocka (nie licząc TestProbe z Akki). Niedawno też wróciłem popisać sobie w javie, praktycznie od razu gdy miałem zamiar pisać test jednostkowy, chciałem użyć mocka. Dlaczego? Odpowiedź jest prosta i po części znajduje się w przytoczonym już wpisie. Scala to funkcyjno-obiektowy język, duży nacisk jest kładziony na niemodyfikowalność i brak efektów ubocznych, język do tego zachęca. Jeśli nie ma side effectów (wywołań typu command), to po co korzystać z mocków? Nie mają racji bytu. Java nie zachęca tak do niemodyfikowalności i braków side effectów, tak więc w niektórych przypadkach mock jest wskazany.

Wspomniałem, że jedyne mocki, które napisałem w scali, to te testujące aktorów z Akki - to jest naturalne. Akka jest oparta na side effectach, każda wysłana wiadomość do dowolnego aktora jest efektem ubocznym.

Nauka z tego jest taka, że zbiór rozwiązań danych problemów z języka X nie przekłada się na zbiór rozwiązań tych problemów w języku Y. Dlaczego? Bo w języku Y te problemy mogą w ogóle nie istnieć lub mogą istnieć inne narzędzia do ich rozwiązania. Przykładowo wzorce obiektowe w programowaniu funkcyjnym oczywiście nie mają zastosowania, do rozwiązania tych problemów stosuje się funkcje wyższego rzędu (np. zamiast strategii), składanie funkcji (np. zamiast dekoratora), czy innych funkcyjnych konstrukcji językowych (np. pattern matching zamiast visitora).

Autor wpisu: Pyton, dodany: 07.03.2016 01:00, tagi: php

Czasami jest taka sytuacja że dostajemy kod w spadku lub do modyfikacji. Trzeba się w ten kod wgryźć, zrozumieć jak działa. Prosta sprawa jeśli jest to jakiś framework, jeśli mamy testy, jeśli kod jest czytelny.

Ale co w przypadku ukochanego przez wszystkich programistów "Spagetti"?

Tutaj przyjdzie nam z pomocą paczka PHP_CodeCoverage. Dzięki niej w bardzo prosty sposób wygenerujemy sobie metryki który kod został uruchomiony przy jakimś requeście. Podobnie to wygląda do Code Coverage podczas uruchamiania Testów Jednostkowych.

Do dzieła!

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.