Mockito מתי / ואז ספר בישול
1. סקירה כללית
ספר בישול זה מראה כיצד להשתמש במוקיטו כדי להגדיר התנהגות במגוון דוגמאות ומקרי שימוש.
ה הפורמט של ספר הבישול הוא ממוקד לדוגמא ופרקטי - אין צורך בפרטים והסברים זרים.
וכמובן, אם אתה רוצה ללמוד עוד על בדיקות טובות עם Mockito, עיין במאמרים האחרים ב- Mockito כאן.
אנחנו נהיה לועג לרשימה פשוטה יישום - אותה הטמעה בה השתמשנו בספר הבישול הקודם:
class public MyList מרחיב את AbstractList {@Override public String get (final int index) {return null; } @ גודל גודל ציבורי אינטראקטיבי () {להחזיר 1; }}
2. ספר בישול
להגדיר התנהגות חזרה פשוטה עבור מדומה
MyList listMock = Mockito.mock (MyList.class); מתי (listMock.add (anyString ())). ואז החזר (false); בוליאני נוסף = listMock.add (randomAlphabetic (6)); assertThat (הוסיף, הוא (שקר));
להגדיר התנהגות החזרה ללעג באופן חלופי
MyList listMock = Mockito.mock (MyList.class); doReturn (false) .when (listMock) .add (anyString ()); בוליאני נוסף = listMock.add (randomAlphabetic (6)); assertThat (הוסיף, הוא (שקר));
הגדר את המוק לזרוק חריג בשיחת שיטה
@Test (צפוי = IllegalStateException.class) חלל ציבורי givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsTrowne () {MyList listMock = Mockito.mock (MyList.class); מתי (listMock.add (anyString ())). ואז לזרוק (IllegalStateException.class); listMock.add (randomAlphabetic (6)); }
להגדיר את ההתנהגות של שיטה עם סוג החזרה בטל - לזרוק חריג להגדיר את ההתנהגות של מספר שיחות להגדיר את התנהגותו של מרגל הגדר את השיטה כדי לקרוא לשיטה האמיתית, הבסיסית, ללעג הגדר שיחת שיטה מדומה עם תשובה מותאמת אישית פורמט זה הוא ניסוי - אני מפרסם כמה מספרי בישול הפיתוח הפנימי שלי בנושא מסוים - בגוגל גויאבה, המקרסט ו עכשיו מוקיטו. המטרה היא שמידע זה יהיה זמין באופן מקוון - ולהוסיף אליו בכל פעם שנתקלתי בדוגמא שימושית חדשה. יישום כל הדוגמאות וקטעי הקוד ניתן למצוא באתר GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.MyList listMock = Mockito.mock (MyList.class); doTrow (NullPointerException.class) .when (listMock) .clear (); listMock.clear ();
MyList listMock = Mockito.mock (MyList.class); מתי (listMock.add (anyString ())) .thenReturn (false) .thenTrow (IllegalStateException.class); listMock.add (randomAlphabetic (6)); listMock.add (randomAlphabetic (6)); // יזרוק את החריג
מופע MyList = MyList חדש (); MyList spy = Mockito.spy (מופע); doTrow (NullPointerException.class). כאשר (מרגל) .גודל (); spy.size (); // יזרוק את החריג
MyList listMock = Mockito.mock (MyList.class); מתי (listMock.size ()). ואז CallRealMethod (); assertThat (listMock.size (), equalTo (1));
MyList listMock = Mockito.mock (MyList.class); doAnswer (קריאה -> "תמיד אותו דבר"). when (listMock) .get (anyInt ()); אלמנט מחרוזת = listMock.get (1); assertThat (אלמנט, הוא (שווה ל- ("תמיד אותו דבר"));
3. מסקנה