בודקים עם אביב וספוק

1. הקדמה

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

2. הגדרת פרויקט

נתחיל מיישום אינטרנט פשוט. הוא יכול לברך, לשנות את הברכה ולאפס אותה חזרה לברירת המחדל על ידי שיחות REST פשוטות. מלבד המעמד הראשי, אנו משתמשים בפשטות RestController לספק את הפונקציונליות:

@RestController @RequestMapping ("/ שלום") WebController בכיתה ציבורית {@GetMapping public הצדעה למחרוזת () {להחזיר "שלום עולם!"; }}

אז הבקר מברך ב'שלום עולם! '. ה @ RestController ביאור והערות קיצור הדרך מבטיחים את רישום נקודות הקצה של REST.

3. מייבן תלות במבחן אתחול ספוק ומעיין

אנו מתחילים בהוספת תלות Maven ובמידת הצורך תצורת תוסף Maven.

3.1. הוספת תלות Spock Framework עם תמיכה באביב

עבור ספוק עצמו ועבור תמיכת האביב אנו זקוקים לשתי תלות:

 org.spockframework spock-core 1.2-groovy-2.4 test org.spockframework spock-spring 1.2-groovy-2.4 test 

שים לב, שהגרסאות מוגדרות באמצעות הן התייחסות לגרסה הגרובית המשומשת.

3.2. הוספת מבחן אתחול האביב

על מנת להשתמש בכלי השירות לבדיקה של Spring Boot Test, אנו זקוקים לתלות הבאה:

 org.springframework.boot spring-boot-starter-test 2.2.2.RELEASE test 

3.3. מקים את גרובי

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

 org.codehaus.gmavenplus gmavenplus-plugin 1.6 compileTests 

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

4. טוען את ApplicationContext במבחן ספוק

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

מחלקה @SpringBootTest LoadContextTest מרחיב מפרט {@Autowired (חובה = שקר) הגדרת WebController פרטית WebController "כאשר טעינת ההקשר אז נוצרים כל השעועית הצפויה" () {expect: "WebController נוצר" webController}}

עבור מבחן שילוב זה, עלינו להפעיל את ApplicationContext, וזה מה @ SpringBootTest עושה למעננו. ספוק מספק את הפרדת החלקים במבחן שלנו עם מילות המפתח כמו "מתי", “לאחר מכן" או “לְצַפּוֹת".

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

5. שימוש WebMvcTest במבחן ספוק

כמו כן, אנו יכולים לבדוק את התנהגותו של ה- WebController:

@ AutoConfigureMockMvc @ מחלקה WebMvcTest WebControllerTest מרחיב מפרט {@ אוטומטית MockMvc mvc def מוגדר "כאשר get מבוצע אז לתגובה יש סטטוס 200 ותוכן הוא 'שלום עולם!'" () {מצפה: "הסטטוס היא 200 והתגובה היא 'שלום עולם! '"mvc.perform (get (" / שלום ")) .andExpect (status (). isOk ()). andReturn () .response .contentAsString ==" שלום עולם! " }}

חשוב לציין שבמבחני ספוק שלנו (או ליתר דיוק מפרטים) אנו יכולים להשתמש בכל ההערות המוכרות ממסגרת הבדיקה Spring Boot שאליה היינו רגילים.

6. מסקנה

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

לצלילה עמוקה יותר, עיין בהדרכות שלנו בנושא בדיקות עם Spring Boot, על מסגרת Spock ועל השפה הגרובית.

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


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