Testy jednostkowe to proste testy pozwalające na sprawdzanie działania aplikacji na poziomie klas i metod. Ich celem jest wspomaganie pracy programisty. Testów jednostkowych nie należy traktować jak testów aplikacji, które należą do zupełnie innej kategorii.
Ciekawą koncepcją jest TDD czyli test driven development. Wg. niej najpierw tworzone zostają testy aby dopiero później stworzyć kod. Dzięki takiemu podejściu zmuszamy umysł do przemyślenia kodu zanim ten zostanie stworzony. Największa moc drzemiąca w testach jednostkowych pojawia się przy wprowadzaniu zmian do wcześniej napisanego kodu. Pilnują one czy logika aplikacji nie zmieniła się w sposób przypadkowy. Więcej na temat testów jednostkowych można znaleźć w sieci, a dla fanów TDD można znaleźć w sieci kubki, koszulki, czapki i przypinki.
To że testy jednostkowe stają się coraz bardziej popularne i coraz chętniej wykorzystywane niech świadczy fakt, że firma Microsoft wypuściła bibliotekę PEX, która generuje testy jednostkowe na podstawie kodu. Co prawda dla TDD takie narzędzie nie wydaje się przydatne, ponieważ wg. tej metodyki należy najpierw stworzyć testy a później kod, to warto wykorzystać je do wyszukania ewentualnych braków i/lub niedopatrzeń. I tak, na stronie Microsoft Research znajdziemy bibliotekę PEX. Po instalacji w menu podręcznym mamy możliwość automatycznego wygenerowania testów dla metod publicznych
Pex sam wygeneruje testy i jeśli już wcześniej stworzyliśmy testy, możemy poszukać takie, które uzupełnią nasze.
A jeśli rzeczywiście znajdziemy test, który uzupełni te nasze, wówczas pozostaje jedynie dodać automatycznie wygenerowany test – promować.
W najbliższym czasie dla aplikacji DesktopInfo stworzony zostanie mechanizm zapisywania ustawień użytkownika dla gadżetów. Ten mechanizm zostanie stworzony w podejściu TDD. Już teraz zachęcam do pisania propozycji testów – słownie, co takie testy mogły by zawierać.
A w najbliższym czasie pojawi się więcej szczegółów na temat PEX-a oraz Molex – kolejny bardzo dobrze zapowiadający się wynalazek firmy Microsoft.