קורס Python שיעור בדיקות יחידה


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/python/lessons/unittest

לא הבנתי למה חייבים ליצור תיקיה זמנית בשביל לבצע בדיקה…
אי אפשר ליצור תיקיה ולמחוק אותה ללא המודול tempfile?

לגבי תיקיה זמנית

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

יצירת תיקיה זמנית ומעבר אליה מבטיח שנדע בדיוק מה המצב ההתחלתי
(מצב הקבצים והתיקיות לפני הרצת הקוד)
וככה הרבה יותר קל לדעת מה התוצאה הצפויה ולצעוק כשיש טעות.

המודול tempfile (או: איפה יוצרים את התיקיה הזמנית)

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

הפקודה:

        self.dir = tempfile.mkdtemp()

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

אכן השתכנעתי, תודה רבה!

לייק 1