שילוב אביב מלפפון

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

מלפפון היא מסגרת בדיקה חזקה מאוד שנכתבה בשפת התכנות רובי, העוקבת אחר מתודולוגיית BDD (פיתוח מונחה התנהגות). זה מאפשר למפתחים לכתוב מקרי שימוש ברמה גבוהה בטקסט רגיל שניתן לאמת על ידי בעלי עניין שאינם טכניים, ולהפוך אותם לבדיקות הפעלה, שנכתבו בשפה הנקראת Gherkin.

כבר דנו בהם במאמר אחר.

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

2. תלות Maven

נתחיל להשתמש באינטגרציה של מלפפון-אביב על ידי הגדרת התלות של Maven - החל מהתלות של מלפפון-JVM:

 מבחן מלפפון מלפפון-ג'אווה 6.8.0 

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

לאחר מכן נוסיף את התלות בבדיקת JUnit ומלפפון:

 מבחן מלפפון מלפפון-צוניט 6.8.0 

הגרסה האחרונה של מלפפון JUnit ניתן למצוא כאן.

ולבסוף, תלות האביב והמלפפון:

 io. מלפפון מלפפון-אביב 6.8.0 מבחן 

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

3. תצורה

כעת נבדוק כיצד נוכל לשלב מלפפון ביישום אביב.

ראשית, ניצור יישום Spring Boot - שעליו נעקוב אחר מאמר היישום Spring-Boot. לאחר מכן ניצור שירות Spring REST ונכתוב עבורו את מבחן המלפפון.

3.1. בקר מנוחה

ראשית, בואו ניצור בקר פשוט:

@RestController מחלקה ציבורית VersionController {@GetMapping ("/ version") ציבורי מחרוזת getVersion () {return "1.0"; }}

3.2. הגדרות שלב מלפפון

כל מה שאנחנו צריכים כדי להריץ את מבחני המלפפונים שלנו עם JUnit הוא ליצור מחלקה ריקה אחת עם ביאור @RunWith (מלפפון.קלאס):

@RunWith (Cucumber.class) @CucumberOptions (features = "src / test / resources") CucumberIntegrationTest {} בכיתה ציבורית

אנו יכולים לראות את ההערה @CucumberOptions שם אנו מציינים את המיקום של קובץ גרקין הידוע גם בשם קובץ התכונה. בשלב זה מלפפון מכיר בשפת הגורקין; אתה יכול לקרוא עוד על גרקין במאמר שהוזכר בהקדמה.

אז עכשיו, בואו ניצור קובץ תכונות של מלפפון:

תכונה: ניתן לאחזר את הגרסה תרחיש: לקוח מבצע שיחה ל- GET / גרסה כאשר הלקוח מתקשר / גרסה ואז הלקוח מקבל קוד סטטוס של 200 והלקוח מקבל שרת גרסה 1.0

התרחיש הוא לבצע שיחת GET לכתובת האתר של שירות REST /גִרְסָה ולאמת את התגובה.

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

עלינו לאפשרויות כאן - אנו יכולים להשתמש בביטויי מלפפון או בביטויים רגילים בתוך ההערות. במקרה שלנו, אנו נצמד לביטויים הרגולריים:

@When ("^ הלקוח מתקשר / גרסה $") פומבי בטל the_client_issues_GET_version () זורק Throwable {executeGet ("// localhost: 8080 / version"); } @Then ("^ הלקוח מקבל קוד סטטוס של (\ d +) $") פומבי בטל the_client_receives_status_code_of (int statusCode) זורק זורק {HttpStatus currentStatusCode = latestResponse.getTheResponse (). GetStatusCode (); assertThat ("קוד המצב אינו נכון:" + latestResponse.getBody (), currentStatusCode.value (), הוא (statusCode)); } @ And ("^ הלקוח מקבל את גרסת השרת (. +) $") פומבי בטל the_client_receives_server_version_body (גרסת מחרוזת) זורק Throwable {assertThat (latestResponse.getBody (), הוא (גרסה)); }

אז עכשיו בואו נשלב את מבחני המלפפון עם הקשר היישום של האביב. לשם כך, ניצור מחלקה חדשה ונציין אותה באמצעותה @ SpringBootTest ו @CucumberContextConfiguration:

@CucumberContextConfiguration @ SpringBootTest מחלקה ציבורית SpringIntegrationTest {// executeGet יישום}

כעת כל הגדרות המלפפונים יכולות לעבור לשיעור Java נפרד המתרחב SpringIntegrationTest:

מחלקה ציבורית StepDefs מרחיבה את SpringIntegrationTest {@When ("^ הלקוח קורא / גירסה $") פומבית בטל the_client_issues_GET_version () זורק Throwable {executeGet ("// localhost: 8080 / version"); }}

כולנו ערוכים למבחן כעת.

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

3 תרחישים ([32 מ 'עברו [0 מ') 9 צעדים ([32 מ 'עברו [0 מ') 0 מ '1.054 שניות ריצה: 12, כישלונות: 0, שגיאות: 0, דילג על: 0, זמן שחלף: 9.283 שניות - ב com.baeldung.CucumberTest 2016-07-30 06: 28: 20.142 INFO 732 --- [Thread-2] AnnotationConfigEmbeddedWebApplicationContext: Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext: date startup [Sat Jul 30 06:28:12 CDT 2016]; שורש ההיררכיה של ההקשר תוצאות: הפעלת בדיקות: 12, כישלונות: 0, שגיאות: 0, דילג על: 0 

4. מסקנה

לאחר הגדרת מלפפון עם אביב, זה יהיה שימושי להשתמש ברכיבים מוגדרים באביב בבדיקת BDD. זהו מדריך פשוט לשילוב מבחן המלפפון ביישום Spring-Boot.

כרגיל, כל דגימות הקוד המוצגות במדריך זה זמינות ב- GitHub.


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