Få stien til kataloget / src / test / resources i JUnit

1. Oversigt

Nogle gange under enhedstestning er vi muligvis nødt til at læse en fil fra klassestien eller videresende en fil til et objekt under test. Eller vi har muligvis en fil i src / test / ressourcer med data til stubs, der kunne bruges af biblioteker som WireMock.

I denne vejledning vi viser, hvordan man læser stien til / src / test / ressourcer vejviser.

2. Maven-afhængigheder

Først skal vi tilføje JUnit 5 til vores Maven-afhængigheder:

 org.junit.jupiter junit-jupiter-motor 5.4.2 

Vi kan finde den nyeste version af JUnit 5 på Maven Central.

2. Brug java.io-fil

Den enkleste tilgang bruger en forekomst af java.io-fil klasse at læse / src / test / ressourcer telefonbog ved at ringe til getAbsolutePath () metode:

Strengsti = "src / test / ressourcer"; Filfil = ny fil (sti); Streng absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("src / test / ressourcer"));

Noter det denne sti er i forhold til den aktuelle arbejdsmappe, hvilket betyder projektmappen.

Lad os se et eksempel på output, når vi kører testen på macOS:

/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources

3. Brug Sti

Dernæst kan vi bruge Sti klasse, som blev introduceret i Java 7.

Først skal vi kalde en statisk fabriksmetode - Paths.get (). Så konverterer vi Sti til Fil. I sidste ende skal vi bare ringe getAbsolutePath ()som i det foregående eksempel:

Sti resourceDirectory = Paths.get ("src", "test", "ressourcer"); Streng absolutPath = resourceDirectory.toFile (). GetAbsolutePath (); System.out.println (absolutePath); Assert.assertTrue (absolutePath.endsWith ("src / test / resources")); 

Og vi ville få den samme output som i det foregående eksempel:

/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/src/test/resources

4. Brug ClassLoader

Endelig kan vi også bruge en ClassLoader:

String resourceName = "eksempel_resource.txt"; ClassLoader classLoader = getClass () getClassLoader (); Filfil = ny fil (classLoader.getResource (resourceName) .getFile ()); Streng absolutPath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("/ eksempel_resource.txt")); 

Og lad os se på output:

/Users/user.name/my_projects/tutorials/testing-modules/junit-5-configuration/target/test-classes/example_resource.txt

Bemærk, at vi denne gang har en /junit-5-configuration/target/test-classes/example-resource.txt fil. Det adskiller sig, når vi sammenligner resultatet med de tidligere metoder.

Dette er fordi det ClassLoader ser efter ressourcerne på klassestien. I Maven placeres de kompilerede klasser og ressourcer i /mål/ vejviser. Derfor fik vi denne gang en sti til en klassesti-ressource.

5. Konklusion

For at opsummere har vi i denne hurtige vejledning diskuteret, hvordan man læser en / src / test / ressourcer bibliotek i JUnit 5.

Afhængigt af vores behov kan vi nå vores mål med flere metoder: ved hjælp af Fil, Stier, eller ClassLoader klasser.

Som altid kan du finde alle vores eksempler på vores GitHub-projekt!


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