מתווה מלפפון ותרחיש

1. הקדמה

מלפפון הוא מסגרת בדיקות של BDD (Behavioral Driven Development).

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

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

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

2. הוספת תמיכת מלפפון

כדי להוסיף תמיכה למלפפון בפרויקט Maven פשוט, נצטרך להוסיף את התלות הבאה:

 info.cukes מלפפון-ג'וניט 1.2.5 מבחן info.cukes cucumber-java 1.2.5 test org.hamcrest hamcrest-library 1.3 test 

קישורים שימושיים לתלות ממאבן סנטרל: מלפפון-שונית, מלפפון-ג'אווה, הספרייה של המקרסט

מכיוון שאלו בודקים ספריות, אין צורך לשלוח אותן עם הפריסה בפועל - ולכן כולן מִבְחָן היקף.

3. דוגמה פשוטה

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

בואו נגדיר תחילה את ההיגיון שאליו אנו רוצים לכתוב מבחן:

מחשבון מחלקה ציבורית {public int add (int a, int b) {return a + b; }}

4. הגדרת מבחני מלפפון

4.1. הגדרת קובץ תכונות

תכונה: מחשבון כמשתמש אני רוצה להשתמש במחשבון כדי להוסיף מספרים כדי שלא אצטרך להוסיף את עצמי תרחיש: הוסף שני מספרים -2 & 3 בהתחשב בכך שיש לי מחשבון כשאני מוסיף -2 ו -3 אז התוצאה צריכה להיות תרחיש אחד: הוסף שני מספרים 10 & 15 בהתחשב שיש לי מחשבון כשאני מוסיף 10 ו -15 אז התוצאה צריכה להיות 25 

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

4.2. קוד "דבק"

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

מחלקה ציבורית CalculatorRunSteps {private int total; מחשבון מחשבון פרטי; @ לפני init בטל פרטי () {total = -999; } @Given ("^ יש לי מחשבון $") חלל ציבורי initializeCalculator () זורק זורק {מחשבון = מחשבון חדש (); } @ מתי ("^ אני מוסיף (-? \ d +) ו- (-? \ d +) $") מבחן הריק הציבורי הוסף (int num1, int num2) זורק לזריקה {total = calculator.add (num1, num2); } @ ואז ("^ התוצאה צריכה להיות (-? \ d +) $") פומבית בטל validateResult (int התוצאה) זורק זרק {Assert.assertThat (סה"כ, Matchers.equalTo (תוצאה)); }}

4.3. כיתת ראנר

על מנת לשלב תכונות וקוד הדבק, נוכל להשתמש ברצי JUnit:

@RunWith (Cucumber.class) @CucumberOptions (features = {"classpath: features / calculator.feature"}, glue = {"com.baeldung.cucumber.calculator"}) מחלקה ציבורית CalculatorTest {}

5. תכונות שכתוב באמצעות מתאר תרחישים

ראינו בסעיף 4.1. כיצד הגדרת קובץ תכונה יכולה להיות משימה גוזלת זמן ונוטה יותר לטעויות. ניתן להפחית את אותו קובץ תכונות לכמה שורות בלבד באמצעות מתאר תרחיש:

תכונה: מחשבון כמשתמש אני רוצה להשתמש במחשבון כדי להוסיף מספרים כדי שלא אצטרך להוסיף את עצמי תרחיש מתאר: הוסף שני מספרים ונתון יש לי מחשבון כשאני מוסיף ואז התוצאה צריכה להיות דוגמאות: | מספר 1 | num2 | סה"כ | | -2 | 3 | 1 | | 10 | 15 | 25 | | 99 | -99 | 0 | | -1 | -10 | -11 |

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

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

מדגם להגדרה דוגמאות מוצג להלן:

דוגמאות: | Parameter_Name1 | Parameter_Name2 | | ערך -1 | ערך -2 | | ערך X | ערך Y |

6. מסקנה

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

קוד המקור השלם של מאמר זה ניתן למצוא באתר GitHub.


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