logo

מוק נגד סטאב נגד מרגל

לִלְעוֹג

מוקסים הם האובייקטים המאחסנים קריאות לשיטה. זה מכונה העטיפות הדינמיות לתלות המשמשות בבדיקות. הוא משמש כדי להקליט ולאמת את האינטראקציה בין מחלקות Java. דוגמנית ידועה כגרסה החזקה והגמישה ביותר של המבחן כפילות. אנו משתמשים בשיטה ללעג נקרא לִלְעוֹג() .

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

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

java לעשות בזמן

קטע הקוד הבא מראה כיצד להשתמש ב-mock().

javafx
 ToDoService doService = mock(ToDoService.class); 

בָּדָל

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

הפונקציות העיקריות של השבבים הן:

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

מרגל

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

אופרטור python rester

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

ב-Mockito, שיטת spy() משמשת ליצירת אובייקטי ריגול. זה מאפשר לנו לקרוא לשיטות הרגילות של האובייקט האמיתי. קטע הקוד הבא מראה כיצד להשתמש בשיטת spy() .

 List spyArrayList = spy(ArrayList.class); 

ההבדל בין סטאב למוק

פרמטרים בָּדָל לִלְעוֹג
מקור מידע מקור הנתונים של ה-stubs מקודד קשה. זה בדרך כלל מחובר היטב לחבילת הבדיקה. נתונים על מוקסים נקבעים על ידי הבדיקות.
נוצר על ידי בדלונים בדרך כלל בכתב יד, וחלקם נוצרים על ידי כלים. דוגמיות נוצרות בדרך כלל באמצעות ספריית צד שלישי כגון Mockito, JMock ו- WireMock.
נוֹהָג סתימות משמשות בעיקר עבור חבילות בדיקה פשוטות. מוקסים משמשים בעיקר עבור חבילות בדיקה גדולות.
ממשק משתמש גרפי (GUI) לסטאב אין GUI. למוקס יש GUI.

להלן כמה הבדלים בין המדומה למרגל:

פרמטרים לִלְעוֹג מרגל
נוֹהָג לעג משמשים ליצירת חפצים מדומים או דמה לחלוטין. הוא משמש בעיקר בחבילות בדיקה גדולות. מרגלים משמשים ליצירת חפצים מדומה חלקיים או למחצה. כמו מדומה, מרגלים משמשים גם בסוויטות בדיקה גדולות.
התנהגות ברירת מחדל בעת שימוש באובייקטים מדומים, התנהגות ברירת המחדל של שיטות (כאשר אינן תקלות) היא לא לעשות כלום (לא מבצע כלום). בעת שימוש באובייקטי ריגול, התנהגות ברירת המחדל של השיטות (כאשר אינן סתומות) היא התנהגות השיטה האמיתית.

במדריכי הלימוד הקודמים שלנו, דנו בכמה דוגמאות של דביקות, לעג וריגול. כדי להבין טוב יותר את ההבדל בין דביקות, לעג וריגול, עברו על הדוגמאות.