Jasne ze pouzivam, kdyz nemam po ruce nejakou *unit knihovnu a moznost testy poustet, pripadam si jak bez jedne ruky. Ted treba zrovna pisu knihovnu pro zpracovani dat nejakych mericich pristroju, kterou budou pouzivat jini, a vidim to asi nasledovne:
Stejne bych musel nejak vyzkouset, ze ta knihovna neblbne, zrejme si napsat nejaky programek ktery bude generovat/cist od uzivatele data a koukat se, jestli to dava vysledky jake ocekavam. Doufat, ze kdyz se to prelozi, tak to i spravne funguje, je furiantstvi a blbost. Proc teda rovnou nenapsat testy, ktere vygeneruji nejaka vzorova data a kouknou jestli vysledky odpovidaji ocekavani? Prace je to nakonec stejne...
Kdyz knihovnu navrhuji, snazim se o to, aby se co nejsnaze pouzivala. Kdyz si nejprve napisu testy, ktere tu knihovnu pouzivaji, dobre si uvedomim, jak verejne rozhrani navrhnout. Pak uz jen dodam implementaci knihovny :-)
Az budou chtit ostatni clenove tymu knihovnu pouzivat, musi mit nejakou dokumentaci, jak se s ni zachazi. Tests to the rescue :-) Vzdyt jsou to vlastne male priklady, jak knihovnu pouzit. Staci mi napsat nejaky textovy dokument popisujici high-level prehled knihovny a jeji rozdeleni, konkretni pouziti pak uz mohou obslehnout z testu. Navic, takovato dokumentace je vzdy up-to-date, coz se o textove da malokdy rici...
Jak rika Donald Knuth, "premature optimalization is the root of all evil", takze to pisu tak, aby to fungovalo a bylo to citelny. Az mi sef rekne "Hele funguje to dobre, ale chtelo by to 100000x zrychlit a at to zere 100000 min pameti", muzu hledat slozitejsi algoritmy a optimalizovat, a vzdy mi pak staci jen pustit testy a ujistit se ze jsem nic nerozbil.
Takze treba v tomhle pripade jasna vyhra. Jsou veci co se testuji hur (GUI, komunikace s externim prostredim, weby), ale pokud to jde, ma smysl testy psat.