Získajte cestu k adresáru / src / test / resources v JUnit

1. Prehľad

Niekedy počas testovania jednotiek možno budeme musieť prečítať nejaký súbor z cesty triedy alebo odovzdať súbor testovanému objektu. Alebo môžeme mať súbor v src / test / zdroje s údajmi o pahýloch, ktoré by mohli použiť knižnice ako WireMock.

V tomto návode ukážeme si, ako čítať cestu súboru / src / test / zdroje adresár.

2. Maven závislosti

Najprv budeme musieť pridať JUnit 5 do našich závislostí Maven:

 org.junit.jupiter junit-jupiter-engine 5.4.2 

Najnovšiu verziu JUnit 5 nájdeme na serveri Maven Central.

2. Pomocou java.io.Súbor

Najjednoduchší prístup používa inštanciu súboru java.io.Súbor trieda prečítať / src / test / zdroje adresára zavolaním na getAbsolutePath () metóda:

Cesta reťazca = "src / test / resources"; File file = new File (cesta); Reťazec absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("src / test / resources"));

Poznač si to táto cesta je relatívna k aktuálnemu pracovnému adresáru, čo znamená adresár projektu.

Pozrime sa na ukážkový výstup pri spustení testu na macOS:

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

3. Používanie Cesta

Ďalej môžeme použiť Cesta triedy, ktorá bola predstavená v prostredí Java 7.

Najprv musíme zavolať statickú továrenskú metódu - Paths.get (). Potom prevedieme Cesta do Súbor. Nakoniec nám stačí zavolať getAbsolutePath (), ako v predchádzajúcom príklade:

Cesta resourceDirectory = Paths.get ("src", "test", "zdroje"); Reťazec absolutePath = resourceDirectory.toFile (). GetAbsolutePath (); System.out.println (absolutePath); Assert.assertTrue (absolutePath.endsWith ("src / test / resources")); 

Získali by sme rovnaký výstup ako v predchádzajúcom príklade:

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

4. Používanie ClassLoader

Nakoniec môžeme použiť aj a ClassLoader:

Reťazec resourceName = "example_resource.txt"; ClassLoader classLoader = getClass (). GetClassLoader (); File file = new File (classLoader.getResource (resourceName) .getFile ()); Reťazec absolutePath = file.getAbsolutePath (); System.out.println (absolutePath); assertTrue (absolutePath.endsWith ("/ example_resource.txt")); 

A pozrime sa na výstup:

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

Všimnite si, že tentokrát máme a /junit-5-configuration/target/test-classes/example-resource.txt spis. Líši sa to, keď porovnávame výsledok s predchádzajúcimi metódami.

To je preto, že the ClassLoader hľadá zdroje na triednej ceste. V Mavene sú kompilované triedy a zdroje vložené do / cieľ / adresár. Preto sme tentokrát dostali cestu k prostriedku triedy.

5. Záver

Aby som to zhrnul, v tomto rýchlom výučbe sme diskutovali o tom, ako čítať a / src / test / zdroje adresár v JUnit 5.

V závislosti na našich potrebách môžeme dosiahnuť náš cieľ viacerými metódami: použitím Súbor, Cestyalebo ClassLoader triedy.

Ako vždy, všetky naše príklady nájdete v našom projekte GitHub!


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