Nađite put direktorija / src / test / resources u JUnit
1. Pregled
Ponekad ćemo tijekom jedinstvenog testiranja možda trebati pročitati neku datoteku s puta predavanja ili je proslijediti objektu koji se testira. Ili, možda imamo datoteku u src / test / resources s podacima za kvarove koje bi mogle koristiti knjižnice poput WireMock-a.
U ovom vodiču, pokazat ćemo kako čitati put / src / test / resources imenik.
2. Ovisnosti Mavena
Prvo, trebamo dodati JUnit 5 našim ovisnostima o Mavenu:
org.junit.jupiter junit-jupiter-motor 5.4.2
Najnoviju verziju JUnit 5 možemo pronaći na Maven Central.
2. Korištenje java.io.Datoteka
Najjednostavniji pristup koristi primjerak java.io.Datoteka razred čitati / src / test / resources imenika, pozivanjem getAbsolutePath () metoda:
Put niza = "src / test / resources"; Datoteka datoteke = nova datoteka (put); String absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("src / test / resources"));
Imajte na umu da ovaj put je u odnosu na trenutni radni direktorij, što znači direktorij projekta.
Pogledajmo primjer izlaza prilikom izvođenja testa na macOS:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
3. Korištenje Staza
Dalje, možemo koristiti Staza klase, koja je uvedena u Javi 7.
Prvo, moramo pozvati statičku tvorničku metodu - Putovi.get (). Zatim ćemo pretvoriti Staza do Datoteka. Na kraju, samo trebamo nazvati getAbsolutePath (), kao u prethodnom primjeru:
Path resourceDirectory = Paths.get ("src", "test", "resources"); Niz absolutePath = resourceDirectory.toFile (). GetAbsolutePath (); System.out.println (absolutePath); Assert.assertTrue (absolutePath.endsWith ("src / test / resources"));
I dobili bismo isti izlaz kao u prethodnom primjeru:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources
4. Korištenje ClassLoader
Napokon, možemo koristiti i ClassLoader:
Niz resursaName = "example_resource.txt"; ClassLoader classLoader = getClass (). GetClassLoader (); Datoteka datoteke = nova datoteka (classLoader.getResource (imeNabora) .getFile ()); String absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("/ example_resource.txt"));
I, pogledajmo izlaz:
/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/target/test-classes/example_resource.txt
Imajte na umu da ovaj put imamo /junit-5-configuration/target/test-classes/example-resource.txt datoteka. Razlikuje se kada usporedimo rezultat s prethodnim metodama.
Ovo je zbog the ClassLoader traži resurse na stazi. U Mavenu su kompilirane klase i resursi stavljeni u /cilj/ imenik. Zato smo ovoga puta dobili put do resursa za put do klase.
5. Zaključak
Da rezimiramo, u ovom smo brzom vodiču razgovarali o tome kako čitati / src / test / resources imenik u JUnit 5.
Ovisno o našim potrebama, svoj cilj možemo postići s više metoda: pomoću Datoteka, Staze, ili ClassLoader razreda.
Kao i uvijek, sve naše primjere možete pronaći na našem GitHub projektu!