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, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.