Test jednostkowy nie jest niczym innym jak kodem wykonującym inny kod w kontrolowanych warunkach. Jego celem jest sprawdzenie bez ingerencji programisty, czy sprawdzany kod działa właściwie.

 

 

Testy jednostkowe - czym są i czy warto je stosować?

Testy jednostkowe – czym są i czy warto je stosować?

 

Jak to działa? Bardzo prosto. Autor testu dostarcza dane wejściowe (input), test wykonuje określone instrukcje oraz sprawdza, czy rezultat działań (output) jest zgodny z oczekiwaniami. Czy jedynym zadaniem testów jednostkowych jest sprawdzenie działania poprawności napisanego kodu?

 

Poprawienie designu w aplikacji

Najważniejszą rolą testów jednostkowych jest poprawienie designu tworzonej aplikacji. Nie mam tutaj oczywiście na myśli jej wyglądu (UI), ale architekturę. Każdy sprawdzany element, żeby możliwe było pokrycie go testami jednostkowymi, powinien udostępniać pewne API. Jest ono wykorzystywane zarówno przez testy, jak i przez pozostałe komponenty, które składają się na całość systemu.

 

Zmuszenie programisty do zastanowienia się nad swoimi działaniami

Wykorzystywanie testów jednostkowych, w szczególności przy kierowaniu się wytycznymi metodyki TDD (test driven development), zmusza programistę do chwili refleksji. Zamiast ponownie bez żadnego zastanowienia rzucać się w szał kodowania, co niestety się dość często zdarza, twórca kodu najpierw myśli nad sposobem implementacji danej funkcjonalności.

Jak najlepiej to zrobić, żeby nie tylko program działał, ale jeszcze nadawał się do testowania? Jak rozplanować odpowiedzialności między klasy? W którym miejscu dodać interfejs? Jakie zależności są potrzebne? Czy całość będzie pasowała do istniejącego już kodu? Co tak naprawdę trzeba napisać, żeby spełnić oczekiwania i nie marnować czasu?

To wszystkie pytania powinien sobie zadać programista i oczywiście znaleźć na nie sensowne odpowiedzi. Ta chwila zastanowienia nad implementowaną funkcjonalnością umożliwia zrozumienie, po co się ją tworzy. Dzięki temu wybrany sposób realizacji w jak największym stopniu będzie odpowiadał rzeczywistemu zapotrzebowaniu na kod.

 

Testy jednostkowe pozwalają na zastosowanie polecanym praktyk programowania

Nie ma sensu się zbytnio rozpisywać na tym punktem. Testy jednostkowe umożliwiają zrozumienie, że wpisywanie kolejnych linii działającego kodu, jest wartościowe tylko na krótką metę. Można to zrobić zdecydowanie lepiej, jeżeli będzie się śledziło aktualne trendy w programowaniu. Jeżeli od razu będziesz myślał o tym, co piszesz, jako o kodzie do przetestowania, to trudność testowania, będzie dla Ciebie wytyczną do zmian niektórych obszarów w kodzie.