בדיקות אינטגרציה ב J2EE/OpenEJB

בדיקות אינטגרציה בסביבת J2EE דורשות שימוש מלא (שאינו mocked) בישויות JPA, בבדיקת החיבוריות למסד הנתונים, בהזרקת EJBs , באתחול שירותי JAX-RS ועוד.

בידוד החלק האפליקטיבי שאותו אנו בודקים איננו תמיד משימה קלה. אם לדוגמא במודול שאותו אנו בודקים יש singleton שמאותחל מיד (Startup@), אנו לא מעוניינים שהוא יהיה חלק מהטסט (אלא אם כן בודקים אותו…). אם טסט אחד ב suite שלנו מכניס מס’ רשומות למסד הנתונים, איננו רוצים שתהיה לזה השפעה על טסט אחר.

ביום רגיל אנו משתמשים ב EJBContainer, המובנה בתוך המפרט של J2EE ומאפשר שימוש ב EJB בסביבת J2SE.
אבל לא היום.

החברים ב OpenEJB הכירו לנו את ה ApplicationComposer אשר היתרונות המשמעותיים הם בידוד סביבת הבדיקה, אתחול מהיר של הסביבה (אין סריקה של ה classpath) ונוחות – אפשר להתרכז בעיקר בכתיבת הטסט.

ע”מ לאתחל את ה ApplicationComposer אנו זקוקים לפחות ל Module@ אחד. Module@ עוטף פונקציה המגדירה את המשתתפים בטסט והיא יכולה להחזיר ישות מעולם הטסטים של OpenEJB.

למשל:

@Module
@Classes(cdi = true, value = { CDI_1.class, CDI_2.class, EJB_1.class })
public WebApp app() {
   return new WebApp();
}

בדוגמא זו נוכל לבצע טסטים על מחלקות שמבצעות Injetc@ ל CDI_1 או CDI_2 או EJB@ ל EJB_1

קריאה נוספת: http://tomee.apache.org/application-composer/getting-started.html

 

Leave a Reply

Your email address will not be published. Required fields are marked *