Presne tak, oboji je neco jineho. Assert se pouziva ve funkcnim kodu,
pomoci (J)unitu se pise testovaci kod.

Testy piseme, abychom (prekvapeni) kod otestovali. Takze test pripravi
vstupy, zavola kod v nejakem modulu a overi, ze je vysledek OK.

Typicke pouziti:
Priprav jednicku, priprav dvojku.
Zavolej scitac.
Over, ze vysledek je trojka.

Aserce kontroluji, zda modul dostava spravne vstupy a jeho stav je
korektni. Je to takova velmi omezena varianta Design by Contract.
Nemely by se pouzivat na overovani vstupu od uzivatele, jen na obranu
pred programatorskymi chybami.
Typicke pouziti:
Scitac je napsan jen pro nezaporna cisla. To je popsano v dokumentaci.
Na jeho zacatku se assertem overi, ze cisla skutecne nejsou zaporna.
Pokud by ho nejaky programator pouzil spatne, brzy se to dozvi.
(Otazkou je, zda trebas tady radeji nepouzit InvalidArgumentException,
hranice je neostra.)

S pozdravem
        Ondřej Nekola



2011/4/1 Libor Jelinek <[email protected]>:
> Dobrý den,
> používáte te (používá se) v praxi klíčové slovo assert k testování? Je můj
> dojem správný, že vlastně assert nikdo nepoužívá a testy se píší mimo v
> JUnit/TestNG apod.?
>
> Chápu, že JUnit toho umí daleko víc a jako takový je vlastně i určen k
> trochu něčemu jinému, ale přece jen v jednodušších programech (nebo v
> jednodušších částech) by mi ruka sklouzává k psaní assertů.
>
> Jak se na to díváte vy?
>
> Díky
> Libor
>

Odpovedet emailem