Test me!

31 maja 2007, by: kozik

Nic odkrywczego dla osób troszkę więcej zajmujących się inżynierią oprogramowania i samym programowaniem nie powiem – testy. Ale nie pierwsze lepsze… tylko takie zautomatyzowane. Czyli to co tygrysy lubią najbardziej – jak zrobić, żeby się nie narobić :) .

No dobra, to ściema – nie do końca zautomatyzowane. Ktoś musi je napisać. A przygotowanie dobrych testów do jakiejś partii kodu potrafi zabrać co najmniej tyle czasu co samo napisanie tego kodu…

Ale, gdy mamy je już gotowe:
# bin/make_test
PHPUnit 3.0.6 by Sebastian Bergmann.
...........................S......S..............................
..........................F.S........S
Time: 00:02
There was 1 failure:
1) testUAString2Icon(FunctionsOtherTest)
[FUNC UA] Zla ikona UA dla systemu. Sprawdzalem pozycje '0' z UA 'Mozilla/5.0
(Windows; U; Windows NT 5.0; pl; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3' (z bazy '2').
Failed asserting that <boolean:false> is identical to <boolean:true>.
FAILURES!
Tests: 103, Failures: 1, Skipped: 4.

to jest naprawdę przydatne. Grzebiesz w kodzie, coś poprawiasz, jakaś mała modyfikacja API czy projektu i wywala się drugi koniec serwisu. Koniec na który nie wchodziłeś od roku :) . Co dają dobre testy? Szansę, że wychwycisz ten błąd.

Zautomatyzowane testy pisze się we frameworkach, jak np. JUnit, NUnit, CUnit i wiele innych. Jest i dla PHP – zowie się (uwaga – co na tle pozostałych może być zaskoczeniem): PHPUnit. Jeśli chcesz zacząć pracę z nim polecam oficjalny tutorial – PHPUnit Pocket Guide. Podstawy używania tłumaczy bardzo dobrze. Bardziej zaawansowane tematy, jak np. stuby do udawania obiektów czy funkcjonalności, są słabiej wytłumaczone, ale zdolny człek się połapie.

Wysłano w Blog - Kozik | Tagi: , | Brak komentarzy »

Adres dla trackback. RSS dla komentarzy w tym wpisie.
Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.