קבל את הנתיב של מדריך / 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 שלנו!


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