Scenariusz sprawdzania połączenia

Z tego dokumentu dowiesz się, jak korzystać z sprawdzania połączeń.

Przykłady wartości

Podczas definiowania połączeń z kontrolą dla danych wejściowych i wyjściowych zwykle należy traktować te kontrole jako reprezentujące typy.

Sprawdzanie danych wejściowych powinno obejmować wszystkie „typy” danych, które są akceptowane, a sprawdzanie danych wyjściowych powinno obejmować dokładnie to, co „zwracają”.

Akceptowanie jednego typu

W najprostszym przypadku, gdy chcesz utworzyć blok, który „akceptuje” lub „zwraca” określony typ, musisz uwzględnić ten typ w sprawdzaniu połączenia.

blok wartości, który akceptuje jeden typ

Akceptowanie wielu typów

Aby utworzyć blok, który „akceptuje” wiele typów, musisz uwzględnić wszystkie akceptowane typy w sprawdzaniu połączenia danych wejściowych.

blok wartości, który akceptuje wiele typów;

Zgodnie z konwencją, jeśli dane wyjściowe mogą czasami być akceptowane w różnych sytuacjach (np. jeśli zezwalasz na używanie liczb jako ciągów znaków), dane wyjściowe powinny być bardziej restrykcyjne, a dane wejściowe bardziej liberalne. Dzięki tej konwencji wyjścia nie łączą się w miejscach, w których nie są obsługiwane.

Akceptuj dowolny typ

Aby utworzyć blok, który „akceptuje” dowolny typ, musisz ustawić w sekcji połączenia parametr connection check na wartość null.

blok wartości, który akceptuje dowolny typ;

Podtypy zwrotów

Aby utworzyć blok, który „zwraca” podtyp, musisz uwzględnić w sprawdzaniu połączeń wyjścia zarówno typ, jak i supertyp.

blok wartości zwracający typ i supertyp;

W przypadku podtypów można użyć wielu testów w sprawdzaniu danych wyjściowych, ponieważ blok zawsze „zwraca” oba typy.

Zwracanie typów parametrycznych

Aby utworzyć blok, który „zwraca” typ z parametrami, musisz uwzględnić w sprawdzaniu połączenia wersji z parametrami i bez parametrów.

W zależności od tego, jak rygorystyczne mają być blokady, możesz też uwzględnić wariacje typu.

blok wartości, który zwraca typ parametryczny i nieparametryczny

Podobnie jak w przypadku podtypów, w tym przypadku w sprawdzaniu wyjściowym można mieć wiele sprawdzeń, ponieważ blok zawsze „zwraca” oba typy.

Przykłady z wyrażeniami i wyrażeniami warunkowymi

Deweloperzy mogą definiować sprawdzanie poprzednich i następnych połączeń na kilka sposobów. Zwykle są one traktowane jako ograniczenie kolejności bloków.

Połączenia następne powinny określać, które bloki powinny następować po bieżącym, a połączenia poprzednie – co reprezentuje bieżący blok.

Zachowaj kolejność bloków

Aby utworzyć zestaw bloków, które łączą się w określonej kolejności, musisz określić, które bloki powinny następować po bieżącym w następnym sprawdzeniu połączenia, a także co jest bieżącym blokiem w poprzednim sprawdzeniu połączenia.

bloki instrukcji o wymuszonym porządku.

Zezwalanie na wiele bloków pośrednich

Aby utworzyć zestaw uporządkowanych bloków, które umożliwiają użycie wielu bloków pośrednich, musisz uwzględnić co najmniej 1 element z poprzedniego sprawdzenia połączenia bloku pośredniego w następnym sprawdzeniu połączenia tego bloku. Dzięki temu blok może być poprzedzony przez więcej bloków.

bloki instrukcji, które umożliwiają stosowanie wielu bloków pośrednich

Nie zezwalaj na bloki pośrednie

Aby utworzyć zestaw uporządkowanych bloków, w których bloki środkowe są opcjonalne, musisz uwzględnić co najmniej 1 wpis z poprzedniego sprawdzenia połączenia bloku środkowego oraz z poprzedniego sprawdzenia połączenia ostatniego bloku w następnym sprawdzeniu połączenia pierwszego bloku. Dzięki temu po pierwszym bloku może nastąpić blok środkowy lub ostatni.

bloki instrukcji, które nie zezwalają na bloki pośrednie

Grupy „albo-albo”

Aby utworzyć blok, po którym mogą występować tylko bloki z jednej grupy lub tylko bloki z drugiej grupy (a nie oba), musisz wykonać 2 czynności:

  1. W następnym sprawdzeniu połączenia pierwszego bloku musisz uwzględnić co najmniej 1 pozycję z poprzednich sprawdzeń połączenia obu grup.

  2. Musisz zdefiniować kolejne sprawdzania połączeń grup tak, aby uwzględniały tylko wartości, które znajdują się w poprzednich sprawdzaniach połączeń (aby mogły być one używane tylko przez bloki tej samej grupy).

bloki instrukcji, za którymi może następować wiele bloków tego samego typu lub wiele bloków innego typu, ale nie oba jednocześnie;