has(customer.email) sa pýta na prítomnosť bez čítania hodnoty.
Skrátené vyhodnotenie && chráni neskorší prístup k položke.
Kontrola null sa vykoná pred kontrolou obsahu reťazca.
Posledné porovnanie odmietne prázdny reťazec.
Čo dokazujú testovacie prípady
Vyplnený e-mail: očakáva sa true (bool).
Chýbajúca položka: očakáva sa false (bool).
Hodnota null: očakáva sa false (bool).
Prázdny reťazec: 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 bezpečne prečítať voliteľnú položku a nepliesť si prítomnosť s platným obsahom.
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.