Site icon Tech Blog

Duckrails – Mock the Universe

duckrails - techblog.co.il

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

שלב א' – התקנת המערכת

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

גם כאן, ישנן שתי אפשרויות התקנה, האחת עם DB של Sqlite והשניה עם Postgres, כאשר ההבדל בניהן, למעט עניין ה DB הוא שבהתקנה עם postgres, יש צורך בקונטיינר נוסף. אוסיף כאן את docker-compose.yaml עבור שתי ההתקנות ותוכלו לבחור במי מהן להשתתמש.

docker-compose.yml עבור התקנה עם Postgres

docker-compose.yml עבור התקנה עם Sqlite

ערכו את קובץ ה docker-compose שלכם והדביקו את קטע הקוד הרלוונטי לכם. בסיום, שמרו את הקובץ והריצו את הפקודה הבאה:

docker-compose up -d

אם ביצעתם הכל כראוי, תוכלו לראות שהמערכת רצה:

ותוכלו גם לגשת אליה דרך הדפדפן:

שלב ב' – הוספת / הגדרת Mocks

ובכן, השימוש במערכת ה duckrails הוא די straight forward:

על מנת ליצור Mock חדש, לחצו על כפתור ה "Create new mock". כעת תקבלו דף המכיל ארבעה חלקים:

General – הגדרות כלליות של ה Mock

דף זה מכיל את ההגדרות הכלליות עבור ה Mock:

Response body – מכיל את גוף התשובה

בחלק זה, נגדיר את גוף התשובה שיחזיר השרת:

Headers

בחלק זה של ההגדרות, נגדיר את ההדרים (Headers) אותם יחזיר השרת כחלק מהתשובה:

Advanced

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

מעבר ל Json שנוצר כפלט מריצת הסקריפט, נוכל להוסיף גם הדמיה של עיכוב כפי שניתן לראות בקטע הקוד הבא:

בדוגמה הנ"ל, נוכל לראות כי הוספנו עיכוב של 5 שניות בתגובה. בנוסף נוכל לראות כי הוספנו שני הדרים בצורה דינמית.

שלב ג' – ביצוע קריאות למערכת

עכשיו, אחרי שהגדרנו את ה Mocks הרצויים, איך אני פונה אליהם? את זה אסביר בחלק זה של המדריך.
נניח שיצרנו Mock המחזיר json סטטי, והנתיב שהגדרנו לו הוא brm/bck (במקרה בדוגמה אני מחזיר רשימת backups שביצעתי לאפליקציה של broadlink ומכן נגזר שם הנתיב.

אז על מנת להגיע אליו, עלי להכניס בדפדפן את הכתובת במבנה הבא http://server_ip:port/brm/bck, כפי שתוכלו לראות בדוגמה הבאה:

שימוש מועיל!

Exit mobile version