מדריך לבדיקה של חיבורים

במסמך הזה מוסבר איך משתמשים בבדיקות חיבור.

דוגמאות לערכים

כשמגדירים בדיקות חיבור לקלטים ולפלטים, בדרך כלל צריך להתייחס לבדיקות כמייצגות סוגים.

הבדיקות של הקלט צריכות לכלול כל 'סוג' שהן מקבלות, והבדיקות של הפלט צריכות לכלול בדיוק את מה שהן 'מחזירות'.

אישור של סוג אחד

במקרה הבסיסי ביותר שבו רוצים ליצור בלוק ש"מקבל" או "מחזיר" نوع אחד, צריך לכלול את הסוג הזה בבדיקת החיבור של החיבור.

בלוק ערכים שמקבל סוג אחד

אישור של כמה סוגים

כדי ליצור בלוק שמקבל כמה סוגים, צריך לכלול כל סוג שמקבלים בבדיקת החיבור של הקלט.

בלוק ערכים שמקבל כמה סוגים

לפי הסכמה, אם אפשר לפעמים לקבל פלט במספר מצבים (למשל, אם מאפשרים להשתמש במספרים לפעמים כמחרוזות), הפלט צריך להיות מגביל יותר והקלט צריך להיות פחות מגביל. כך אפשר לוודא שהפלט לא יתחבר למקומות שבהם אין תמיכה בו.

אישור כל סוג

כדי ליצור בלוק ש"מקבל" כל סוג, צריך להגדיר את בדיקת החיבור של הקלט ל-null.

בלוק ערך שמקבל כל סוג

סוגי משנה של ערכים שמוחזרים

כדי ליצור בלוק ש"מחזיר" תת-סוג, צריך לכלול גם את הסוג וגם את הסוג העל בבדיקת החיבור של הפלט.

בלוק ערך שמחזיר את הסוג שלו ואת הסוג האב שלו

במקרה של תת-סוגים, מותר לכלול כמה בדיקות בבדיקת פלט, כי הבלוק תמיד "מחזיר" את שני הסוגים.

החזרת סוגים עם פרמטרים

כדי ליצור בלוק ש"מחזיר" סוג עם פרמטרים, צריך לכלול גם את הגרסה עם הפרמטרים וגם את הגרסה ללא הפרמטרים בבדיקת החיבור של הפלט.

בהתאם לרמת הסטריקטיביות של שפת החסימה, כדאי לכלול גם את השינויים של הסוג.

בלוק ערך שמחזיר את הסוג עם הפרמטרים ואת הסוג ללא הפרמטרים

בדומה לסוגי משנה, במקרה הזה מותר לכלול כמה בדיקות בבדיקת הפלט, כי הבלוק תמיד "מחזיר" את שני הסוגים.

דוגמאות ל-stack או ל-statement

יש כמה דרכים נפוצות שבהן מפתחים מגדירים בדיקות לחיבורים הקודמים והבאים. בדרך כלל, אפשר להתייחס לתנאים האלה כאל הגבלה על סדר הבלוק.

החיבורים הבאים צריכים לכלול את הבלוק שצריך לבוא אחרי הבלוק הנוכחי, והחיבורים הקודמים צריכים לכלול את מה שהבלוק הנוכחי 'הוא'.

שמירה על הסדר בין הבלוקים

כדי ליצור קבוצה של בלוקים שמתחברים בסדר מוגדר, צריך לציין אילו בלוקים צריכים להופיע אחרי הבלוק הנוכחי בבדיקת החיבור הבאה, ואת 'הזהות' של הבלוק הנוכחי בבדיקת החיבור הקודמת.

בלוקים של הצהרות עם סדר נדרש

לאפשר הרבה בלוקים באמצע

כדי ליצור קבוצה של בלוקים מסודרים שמאפשרים הרבה בלוקים באמצע, צריך לכלול לפחות רשומה אחת מבדיקת החיבור הקודמת של הבלוק האמצעי בבדיקת החיבור הבאה של הבלוק האמצעי. כך אפשר להוסיף עוד עותקים של הבלוק אחריו.

בלוקים של הצהרות שמאפשרים הרבה בלוקים באמצע

אין לאפשר בלוקים באמצע

כדי ליצור קבוצה של בלוקים מסודרים שבהם הבלוקים האמצעיים הם אופציונליים, צריך לכלול לפחות רשומה אחת מבדיקה קודמת של החיבור בבלוק האמצעי ומבדיקה קודמת של החיבור בבלוק האחרון, בבדיקה הבאה של החיבור בבלוק הראשון. כך אפשר להוסיף אחרי הבלוק הראשון בלוק באמצע או בלוק אחרון.

בלוקים של הצהרות שאסור לכלול בהם בלוקים באמצע

סטאקים מסוג 'או-או'

כדי ליצור בלוק שאפשר להוסיף אחריו רק בלוקים מקבוצה אחת, או בלוקים מקבוצה אחרת (ולא את שניהם), צריך לבצע שני דברים:

  1. צריך לכלול לפחות רשומה אחת מכל אחת מהבדיקות הקודמות של הקבוצות בבדיקת החיבור הבאה של הבלוק הראשון.

  2. צריך להגדיר את בדיקות החיבור הבאות של הקבוצות כך שיכללו רק ערכים שנמצאים בבדיקות החיבור הקודמות שלהן (כדי שרק בלוקים מאותה קבוצה יוכלו לעקוב אחריהן).

בלוקים של הצהרות שאפשר להוסיף אחריהם כמה בלוקים מאותו סוג, או כמה בלוקים מסוג אחר, אבל לא את שניהם