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!


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