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!