בדיקות אינטגרציה בסביבת 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