Szerezze be a / src / test / resources könyvtár elérési útját a JUnit-ben
1. Áttekintés
Előfordulhat, hogy az egység tesztelése során el kell olvasnunk néhány fájlt az osztályútvonalról, vagy át kell adnunk egy fájlt egy tesztelt objektumnak. Vagy lehet, hogy van fájlunk src / test / resources a csonkok adataival, amelyeket olyan könyvtárak használhatnak fel, mint a WireMock.
Ebben az oktatóanyagban megmutatjuk, hogyan kell olvasni a / src / test / resources Könyvtár.
2. Maven-függőségek
Először hozzá kell adnunk a JUnit 5-et a Maven-függőségeinkhez:
org.junit.jupiter junit-jupiter-motor 5.4.2
A JUnit 5 legújabb verzióját megtalálhatjuk a Maven Central oldalán.
2. Használata java.io.Fájl
A legegyszerűbb megközelítés a java.io.Fájl osztály hogy elolvassa a / src / test / resources könyvtárat a getAbsolutePath () módszer:
Karakterlánc útvonala = "src / test / resources"; File file = új File (elérési út); Karakterlánc abszolút elérési út = file.getAbsolutePath (); System.out.println (absolutPath); assertTrue (absolutPath.endsWith ("src / teszt / erőforrások"));
Vegye figyelembe, hogy ez az út az aktuális munkakönyvtárhoz viszonyítva, vagyis a projekt könyvtár.
Lássunk egy példa kimenetet a teszt futtatásakor macOS-on:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
3. Használata Pálya
Ezután használhatjuk a Pálya osztály, amelyet a Java 7-ben vezettek be.
Először statikus gyári módszert kell meghívnunk - Paths.get (). Aztán megtérünk Pálya nak nek File. Végül csak felhívnunk kell getAbsolutePath (), mint az előző példában:
Path resourceDirectory = Paths.get ("src", "teszt", "források"); Karakterlánc abszolút útvonal = resourceDirectory.toFile (). GetAbsolutePath (); System.out.println (absolutPath); Assert.assertTrue (absolutPath.endsWith ("src / teszt / erőforrások"));
És ugyanazt a kimenetet kapnánk, mint az előző példában:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
4. Használata ClassLoader
Végül használhatjuk a ClassLoader:
String erőforrásNév = "példa_forrás.txt"; ClassLoader classLoader = getClass (). GetClassLoader (); Fájlfájl = új Fájl (classLoader.getResource (erőforrásNév) .getFile ()); Karakterlánc abszolút elérési út = file.getAbsolutePath (); System.out.println (absolutPath); assertTrue (absolutPath.endsWith ("/ pelda_resource.txt"));
És nézzük meg a kimenetet:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/target/test-classes/example_resource.txt
Ne feledje, hogy ezúttal a /junit-5-configuration/target/test-classes/example-resource.txt fájl. Különbözik, ha összehasonlítjuk az eredményt az előző módszerekkel.
Ez azért van, mert a ClassLoader keresi az erőforrásokat az osztályúton. Mavenben az összeállított osztályok és források a /cél/ Könyvtár. Ezért ezúttal utat kaptunk egy classpath erőforráshoz.
5. Következtetés
Összefoglalva, ebben a gyors bemutatóban megbeszéltük, hogyan kell olvasni a / src / test / resources könyvtár az 5. JUnit-ben.
Igényeinktől függően több módszerrel is elérhetjük célunkat: felhasználással File, Útvonalak, vagy ClassLoader osztályok.
Mint mindig, minden példánkat megtalálhatja a GitHub projektünkön!