Podle me zakladni rozdil mezi asserty a unit testy je v tom, ze asserty odhali pripadne chyby az pri behu programu, zatimco unit testy to umoznuji v podstate kdykoliv se rozhodnu zjistit si, zda prochazeji - kdyz neco "opravim", zmenim, vymenim behove prostredi, knihovny, atp... Unit testy pustim pri vyvoji klidne 20x za hodinu. S asserty musim pustit samotny testovany program, a pokud mozno jej pri behu donutit projit vetve, ktere asserty obsahuji, to proste zdrzuje a neni to spolehlive. Tim nerikam ze asserty nemaji sve pouziti, prinejmensim mohou usnadnit hledani chyb a take castecne dokumentuji definicni obor prijimanych parametru a obor navratovych hodnot funkci, ale ty ctyri veci co jsem zminoval ve svem predchozim prispevku
- pomoc pri navrhu kodu, lepsi rozmysleni architektury a zpusobu pouziti
- nahrada rucniho testovani, opakovatelnost testu, + jak tu nekdo zminoval, zajisteni ze jiz jednou opravene chyby se nebudou vracet
- vetsi duvera ve vlastni kod, obzvlaste pri refaktoringu, optimalizacich, upgrade pouzitych knihoven
- vzdy up-to-date dokumentace s priklady k pouzivani testovaneho kodu
proste nemohou asserty nahradit. Vyznam kazdeho je jinde.