Lekce 6 - Testování v Kotlin - Unit testy generátoru náhodných dat
V minulé lekci, Testování v Kotlin – Unit testy perzistentní vrstvy, jsme si ukázali zdrojový kód testující DAO třídu pro ukládání entit do databáze.
V dnešním tutoriálu si ukážeme další příklad unit testů v Kotlin. Ukážeme si, jak testovat generátory náhodných dat pomocí analýzy rovnoměrnosti distribuce a Levenshteinovy vzdálenosti.
Testy generátoru náhodných dat
Generátory nějakých náhodných nebo unikátních hodnot, se v našich aplikacích často vyskytnou. Jak ale otestovat něco, co má vždy jiné hodnoty?
Pokud generujeme čísla, základní test obvykle zkontroluje rozsah hodnot a jejich frekvenci výskytu. Měla by padat jen povolená čísla a každé se stejnou pravděpodobností.
Pokud jsou hodnoty využívány pro kryptografické účely, např. generování hesel, existují pro jejich ověření další speciální testovací algoritmy, které jsou nad rámec tohoto kurzu.
Pokud generujeme textové řetězce, budeme testovat vlastnosti těchto hodnot, tedy zda splňují předpis a jsou skutečně náhodné (pseudonáhodné).
Hammingova a Levenshteinova vzdálenost
Při porovnávání textových řetězců se v programování setkáte nejčastěji se dvěma typy vzdáleností:
- Hammingova vzdálenost určuje nejmenší počet znaků, které
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V Kotlin tutoriálu se naučíme pokrýt unit testy v JUnit generátor náhodných tokenů pomocí analýzy rovnoměrnosti distribuce a Levenshteinovy vzdálenosti.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.