Zanim ochoczo zabiorę się do instalacji PHPUnita najpierw warto przypomnieć: po co to komu? :)
Testy jednostkowe (ang. unit test) służą do częstego weryfikowania poprawności działania pojedynczych elementów programu takich jak np. obiekty. Przykładowo gdy piszemy klasę modelu korzystając z jakiegoś frameworka PHP, warto napisać dla niej Unit testy. Dzięki temu po każdej zmianie kodu aplikacji, możemy zyskać pewność, że kod działa poprawnie bez żmudnego manualnego testowania.
Tak więc poddajemy fragment programu testowi, który wykonuje go i porównuje wynik (np. zwrócone wartości, stan obiektu, wyrzucone wyjątki) z wynikami oczekiwanymi.
Co nam to daje, poza wysiłkiem implementacji test casów? Otóż zyskujemy możliwość błyskawicznego wychwycenia i poprawienia błędu - zanim jeszcze zostanie wprowadzony na środowisko produkcyjne.
OK to tyle jeśli chodzi o teorię - pora na praktykę. A w praktyce... cóż PHPUnit żądzi i basta :) Jest to swego rodzaju złoty standard w temacie testowania kodu PHP. Ale jak go zainstalować?
Zwyczajnie :) PEARem:
sudo pear config-set auto_discover 1 sudo pear install pear.phpunit.de/PHPUnit
W idealnym przypadku wystarczy następnie zainstalować PHPUnit
sudo apt-get install phpunit
i już można rozpocząć testy...
... niestety wielu użytkowników ubuntu napotka tu pierwsze schody, mi też się to przytrafiło. Po napisaniu przykładowego testu zabrałem się ochoczo do uruchomienia testu... lecz próba uruchomienia z terminala phpunit powodowała tylko komunikat:
PHP Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/bin/phpunit on line 39
Okazuje się, że niektóre wersje Ubuntu zawierają błąd na szczęście łatwo go samodzielnie naprawić uruchamiając po kolei komendy:
sudo pear config-set bin_dir /usr/bin sudo pear config-set doc_dir /usr/share/php/doc sudo pear config-set php_dir /usr/share/php sudo pear config-set cfg_dir /usr/share/php/cfg sudo pear config-set data_dir /usr/share/php/data sudo pear config-set test_dir /usr/share/php/test sudo pear uninstall phpunit/PHPUnit sudo pear channel-discover pear.phpunit.desudo pear install --alldeps phpunit/PHPUnit
Brak komentarzy:
Prześlij komentarz