קבל את הנתיב של מדריך / src / test / resources ב- JUnit
1. סקירה כללית
לפעמים במהלך בדיקות היחידות, ייתכן שנצטרך לקרוא קובץ כלשהו משביל הכיתה או להעביר קובץ לאובייקט הנבדק. לחלופין, ייתכן שיש לנו קובץ src / test / resources עם נתונים עבור stubs שיכולים לשמש ספריות כמו WireMock.
במדריך זה, נראה כיצד לקרוא את הנתיב של / src / test / resources מַדרִיך.
2. תלות Maven
ראשית, נצטרך להוסיף את JUnit 5 לתלות שלנו ב- Maven:
org.junit.jupiter junit-jupiter-engine 5.4.2
אנו יכולים למצוא את הגרסה האחרונה של JUnit 5 ב- Maven Central.
2. שימוש java.io. קובץ
הגישה הפשוטה ביותר משתמשת במופע של java.io. קובץ מעמד לקרוא את / src / test / resources ספריה, על ידי התקשרות ל- getAbsolutePath () שיטה:
נתיב מחרוזת = "src / test / resources"; קובץ קובץ = קובץ חדש (נתיב); מחרוזת absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("src / test / resources"));
ציין זאת נתיב זה הוא יחסית לספריית העבודה הנוכחית, כלומר ספריית הפרויקט.
בואו נראה פלט לדוגמא בעת הפעלת הבדיקה ב- macOS:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
3. שימוש נָתִיב
לאחר מכן נוכל להשתמש ב- נָתִיב בכיתה, שהוצגה בג'אווה 7.
ראשית, עלינו לקרוא לשיטת מפעל סטטית - Paths.get (). ואז נתגייר נָתִיב ל קוֹבֶץ. בסופו של דבר, אנחנו רק צריכים להתקשר getAbsolutePath (), כמו בדוגמה הקודמת:
נתיב resourceDirectory = Paths.get ("src", "test", "resources"); מחרוזת absolutePath = resourceDirectory.toFile (). GetAbsolutePath (); System.out.println (absolutePath); Assert.assertTrue (absolutePath.endsWith ("src / test / resources"));
וכן נקבל את אותה תפוקה כמו בדוגמה הקודמת:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
4. שימוש ClassLoader
לבסוף, אנו יכולים גם להשתמש ב- ClassLoader:
מחרוזת resourceName = "example_resource.txt"; ClassLoader classLoader = getClass (). GetClassLoader (); קובץ קובץ = קובץ חדש (classLoader.getResource (resourceName) .getFile ()); מחרוזת absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("/ example_resource.txt"));
ובואו נסתכל על הפלט:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/target/test-classes/example_resource.txt
שימו לב שהפעם, יש לנו /junit-5-configuration/target/test-classes/example-resource.txt קוֹבֶץ. זה שונה כאשר אנו משווים את התוצאה לשיטות הקודמות.
זה בגלל ש ה ClassLoader מחפש את המשאבים בשביל הכיתה. ב Maven, הכיתות והמשאבים המהוללים מוכנסים ל /יַעַד/ מַדרִיך. זו הסיבה שהפעם קיבלנו דרך למשאב שביל הכיתה.
5. מסקנה
לסיכום, במדריך מהיר זה דנו כיצד לקרוא א / src / test / resources מדריך ב- JUnit 5.
בהתאם לצרכים שלנו, אנו יכולים להשיג את מטרתנו במספר שיטות: באמצעות קוֹבֶץ, שבילים, או ClassLoader שיעורים.
כמו תמיד, תוכלו למצוא את כל הדוגמאות שלנו בפרויקט GitHub שלנו!