חריג ללעג לזרוק באמצעות Mockito

1. סקירה כללית

במדריך מהיר זה - נתמקד כיצד להגדיר שיחת שיטה כך שתשליך חריג עם Mockito.

למידע נוסף על הספרייה, עיין גם בסדרת Mockito שלנו.

הנה שיעור מילונים פשוט שנשתמש בדוגמאות הבאות:

מחלקה MyDictionary {מפה מפה פרטית wordMap = HashMap חדש (); הוסף ריק ריק (מילה מחרוזת, משמעות מחרוזת) {wordMap.put (מילה, משמעות); } מחרוזת ציבורית getMeaning (מילה מחרוזת) {return wordMap.get (word); }}

2. לאבָּטֵל סוג החזרה

ראשית, אם סוג החזרת השיטה שלנו אינו בָּטֵל אנחנו יכולים להשתמש מתי (). ואז לזרוק ():

@Test (צפוי = NullPointerException.class) בטל בציבור כאשרConfigNonVoidRetunMethodToThrowEx_thenExIsThrown () {MyDictionary dictMock = mock (MyDictionary.class); מתי (dictMock.getMeaning (anyString ())) .thenTrow (NullPointerException.class); dictMock.getMeaning ("מילה"); } 

שימו לב, הגדרנו את ה- getMeaning () שיטה - המחזירה ערך מסוג חוּט - לזרוק א NullPointerException כשנקרא.

3. בָּטֵל סוג החזרה

עכשיו, אם השיטה שלנו תחזור בָּטֵל, נשתמש doTrow ():

@Test (צפוי = IllegalStateException.class) בטל פומבי כאשרConfigVoidRetunMethodToThrowEx_thenExIsThrown () {MyDictionary dictMock = mock (MyDictionary.class); doThrow (IllegalStateException.class). When (dictMock) .add (anyString (), anyString ()); dictMock.add ("מילה", "משמעות"); }

הנה, הגדרנו לְהוֹסִיף() שיטה - שמחזירה בָּטֵל - לזרוק IllegalStateException כשנקרא.

אנחנו לא יכולים להשתמש מתי (). ואז לזרוק () עם בָּטֵל סוג החזרה כפי שהמהדר אינו מאפשר בָּטֵל שיטות בסוגריים.

4. חריג כאובייקט

לגבי תצורת החריג עצמו, נוכל לעבור את מחלקת החריג כמו בדוגמאות הקודמות שלנו או כאובייקט:

@Test (צפוי = NullPointerException.class) בטל פומבי כאשר ConfigNonVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown () {MyDictionary dictMock = mock (MyDictionary.class); מתי (dictMock.getMeaning (anyString ())) .thenTrow (חדש NullPointerException ("אירעה שגיאה")); dictMock.getMeaning ("מילה"); }

ואנחנו יכולים לעשות את אותו הדבר גם עם doTrow () גם כן:

@Test (צפוי = IllegalStateException.class) בטל ציבורי כאשרConfigVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown () {MyDictionary dictMock = mock (MyDictionary.class); doThrow (IllegalStateException חדש ("אירעה שגיאה)). When (dictMock) .add (anyString (), anyString ()); dictMock.add ("מילה", "משמעות"); }

5. מרגל

אנחנו יכולים גם להגדיר מרגל לזרוק חריג באותו אופן שעשינו עם הלעג:

@Test (צפוי = NullPointerException.class) חלל ציבורי givenSpy_whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown () {MyDictionary dict = MyDictionary חדש (); MyDictionary מרגל = Mockito.spy (dict); מתי (spy.getMeaning (anyString ())) .thenTrow (NullPointerException.class); spy.getMeaning ("מילה"); }

6. מסקנה

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

כמו תמיד, ניתן למצוא את קוד המקור המלא ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found