Mockito אמת ספר בישול
1. סקירה כללית
ספר בישול זה ממחיש כיצד להשתמש במוקיטו לאמת במגוון מקרי שימוש.
ה הפורמט של ספר הבישול הוא ממוקד לדוגמא ופרקטי - אין צורך בפרטים והסברים זרים.
אנחנו נהיה לועג לרשימה פשוטה יישום:
class public MyList מרחיב את AbstractList {@Override public String get (final int index) {return null; } @ גודל גודל ציבורי אינטראקטיבי () {להחזיר 0; }}
2. ספר הבישול
לאמת קריאה פשוטה על מדומה
רשימה mockedList = mock (MyList.class); mockedList.size (); אמת (mockedList). גודל ();
לאמת את מספר האינטראקציות עם מדומה
רשימה mockedList = mock (MyList.class); mockedList.size (); אמת (mockedList, זמנים (1)). גודל ();
ודא שלא התרחשה שום אינטראקציה עם כל הלעג
רשימה mockedList = mock (MyList.class); verifyZeroInteractions (mockedList);
ודא שלא התרחשה שום אינטראקציה עם שיטה ספציפית
רשימה mockedList = mock (MyList.class); אמת (mockedList, זמנים (0)). גודל ();
ודא שאין אינטראקציות בלתי צפויות - הדבר אמור להיכשל:
רשימה mockedList = mock (MyList.class); mockedList.size (); mockedList.clear (); אמת (mockedList). גודל (); verifyNoMoreInteractions (mockedList);
לאמת את סדר האינטראקציות
רשימה mockedList = mock (MyList.class); mockedList.size (); mockedList.add ("פרמטר"); mockedList.clear (); InOrder inOrder = Mockito.inOrder (mockedList); inOrder.verify (mockedList) .size (); inOrder.verify (mockedList) .add ("פרמטר"); inOrder.verify (mockedList) .clear ();
ודא שלא התקיימה אינטראקציה
רשימה mockedList = mock (MyList.class); mockedList.size (); אמת (mockedList, לעולם ()). נקה ();
ודא כי אינטראקציה התרחשה לפחות מספר פעמים מסוים
רשימה mockedList = mock (MyList.class); mockedList.clear (); mockedList.clear (); mockedList.clear (); אמת (mockedList, atLeast (1)). נקה (); אמת (mockedList, atMost (10)). נקה ();
לאמת אינטראקציה עם טיעון מדויק
רשימה mockedList = mock (MyList.class); mockedList.add ("מבחן"); אמת (mockedList) .add ("מבחן");
לאמת אינטראקציה עם גמיש / כל טיעון
רשימה mockedList = mock (MyList.class); mockedList.add ("מבחן"); אמת (mockedList). להוסיף (anyString ());
לאמת אינטראקציה באמצעות לכידת ארגומנטים
רשימה mockedList = mock (MyList.class); mockedList.addAll (Lists. newArrayList ("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass (List.class); אמת (mockedList) .addAll (argumentCaptor.capture ()); רשימה captArgument = argumentCaptor. getValue (); assertThat (captureArgument, hasItem ("someElement"));
3. מסקנה
פורמט זה הוא ניסוי - אני מפרסם כמה מספרי בישול הפיתוח הפנימי שלי בנושא מסוים - בגוגל גויאבה, המקרסט ו עכשיו מוקיטו. המטרה היא שמידע זה יהיה זמין באופן מקוון - ולהוסיף אליו בכל פעם שנתקלתי בדוגמא שימושית חדשה.
יישום כל הדוגמאות וקטעי הקוד ניתן למצוא ב- GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.