Overíte stav, kontroly, finálne schválenie a voliteľný čas publikovania.
Praktický CEL4 testovacie prípadyZdokumentované
Čo si precvičím?
Viete spojiť kolekčné a časové pravidlá s bezpečnou voliteľnou položkou.
Ako sa riešenie overí?
Jeden výraz musí vrátiť očakávaný výsledok pre všetky štyri vstupy JSON.
Kedy som hotový?
Keď prejdú všetky testy a viete vysvetliť každú podmienku vo výraze.
Slovná úloha
Obsah je pripravený iba v stave review, s aspoň jednou úspešnou kontrolou, práve jedným schváleným finálnym schválením a bez času publikovania v minulosti.
Presné požiadavky
Stav sa musí rovnať review.
Zoznam kontrol nie je prázdny a každá kontrola prešla.
Práve jedno schválenie je súčasne finálne a schválené.
Chýbajúci čas publikovania je povolený; prítomný čas je teraz alebo neskôr.
Požadovaný výsledok
Napíšte jeden výraz CEL. Musí vrátiť očakávanú hodnotu aj typ pre všetky štyri pripravené vstupy JSON. Vstupy nemeňte tak, aby prešiel neúplný výraz.
Odporúčaný postup
Každú očíslovanú požiadavku preložte na jednu malú logickú podmienku.
Spustite počiatočný výraz a zistite, ktoré prípady neprešli.
Pridávajte vždy jednu podmienku a znova spustite celú testovaciu sadu.
Úlohu označte za dokončenú až vtedy, keď viete vysvetliť každý operátor a každú hranicu.
Vyriešte úlohu · testovacia sada v prehliadači
Napíšte jeden výraz, ktorý prejde všetkými prípadmi
Upravte výraz CEL a potom ho spustite nad všetkými pripravenými vstupmi JSON. Riešenie je hotové až vtedy, keď prejdú všetky prípady.
4 testovacie prípady
Pomôcka: Každá kontrola musí prejsť; finálne schválenie musí byť práve jedno; minulý čas publikovania je neplatný.
Tip: všetky testy spustíte aj klávesmi Ctrl/⌘ + Enter.
Kontrola stavu a veľkosti zoznamu vytvorí základný stav.
all() odmietne ktorúkoľvek neúspešnú kontrolu.
exists_one() spočíta úplné finálne a schválené zhody.
Posledná skupina bezpečne prijme chýbajúci plán alebo porovná prítomnú časovú pečiatku.
Čo dokazujú testovacie prípady
Pripravený obsah bez termínu: očakáva sa true (bool).
Budúce publikovanie: očakáva sa true (bool).
Neúspešná kontrola: očakáva sa false (bool).
Čas publikovania v minulosti: očakáva sa false (bool).
Prípady sú zámerne rozdielne. Riešenie, ktoré prejde iba prvým prípadom, ešte nezapracovalo celé pravidlo.
Častá chyba
Výraz neprispôsobujte iba prvému úspešnému vstupu. Požiadavka je zapracovaná až vtedy, keď kladný, záporný aj hraničný prípad vytvoria určený výsledok.
Kontrolná otázka
Viete ukázať presnú časť riešenia, ktorá spôsobí zlyhanie každého nepravdivého testu? Ak dve rozdielne zlyhania závisia od rovnakej podmienky, vysvetlite prečo.
Hlavná myšlienka
Viete spojiť kolekčné a časové pravidlá s bezpečnou voliteľnou položkou.
Zdroje
CEL-DEV — oficiálny prehľad CEL.
CEL-LANG — oficiálna definícia jazyka CEL pre operátory, typy, makrá, prítomnosť, reťazce a časové hodnoty použité v tejto úlohe.