V předchozím článku Generujeme testovací data v JavaScriptu – zkracujeme Then jsme vytvořili továrničku s náhodnými vstupními daty a tím docílili zkrácení části Then v testu. Nyní se podíváme na alternativní definici modelu user
pomocí schéma.
Psaní validací pro vstupní data v programu je obvykle časově náročné a obsahuje chyby – zapomenuté případy. V předchozím článku jsme měli pouze definici v Typescriptu a žádnou validaci. Prozkoumejme možnost definovat entitu user
pomocí schéma z knihovny yup:
Definice je čitelná a přesná. Knihovna yup umožňuje široké možnosti definice několika úrovňových entit se speciálními pravidly.
Abychom nadále mohli mít náhodné vstupní data v testech a nemuseli opakovat yup definice do továrničky createUser
, můžeme na to použít knihovnu yup-schema-faker. Tato knihovna nám umožní vygenerovat vstupní data dle námi definovaného schéma entity včetně akceptování našeho počátečního čísla(seed) jak jsem psal dříve.
Nově můžeme i zapojit validaci vstupních dat do metody updateUser
. Podívejme se na výsledný kód:
Použitím definice modelu podle schéma napsaného v yup jsme opět zjednodušili a posílili náš model bez změny v testech. Pro přidání nového atributu do entity user
se stále držíme pouze editace na jediném místě.
Celý příklad naleznete také ve veřejném github repozitáři zde.