Sprievodca programom JavaFaker

1. Prehľad

JavaFaker je knižnica, ktorú je možné použiť na generovanie širokej škály skutočne vyzerajúcich údajov z adries do odkazov na populárnu kultúru.

V tomto výučbe sa pozrieme na to, ako používať triedy JavaFaker na generovanie falošných údajov. Začneme predstavením Faker triedy a FakeValueService, skôr ako pristúpite k zavedeniu miestnych nastavení, aby boli údaje konkrétnejšie na jednom mieste.

Na záver si povieme, aké jedinečné sú údaje. Na testovanie tried JavaFaker použijeme regulárne výrazy, viac si o nich môžete prečítať tu.

2. Závislosti

Nižšie uvádzame jedinú závislosť, ktorú budeme musieť začať s programom JavaFaker.

Najprv závislosť, ktorú budeme potrebovať pre projekty založené na Maven:

 com.github.javafaker javafaker 0,15 

Pre používateľov aplikácie Gradle môžete do svojej aplikácie pridať nasledujúce položky build.gradle spis:

skupina kompilácií: „com.github.javafaker“, názov: „javafaker“, verzia: „0,15“

3. FakeValueService

The FakeValueService trieda poskytuje metódy generovania náhodných sekvencií ako aj riešenie .yml súbory spojené s miestnym nastavením.

V tejto časti sa budeme venovať niektorým z užitočných metód, ktoré FakerValueService musí ponúknuť.

3.1. Letterify, Vyčísliťa Bothify

Tri užitočné metódy sú Letterify, Spočítaťa Bothify. Letterify pomáha generovať náhodné sekvencie abecedných znakov.

Ďalšie, Vyčísliť jednoducho generuje číselné sekvencie.

Nakoniec Bothify je kombináciou oboch a môže vytvárať náhodné alfanumerické sekvencie - užitočné na zosmiešňovanie vecí, ako sú reťazce ID.

FakeValueService vyžaduje platný Miestne nastavenie, rovnako ako a RandomService:

@Test public void whenBothifyCalled_checkPatternMatches () vyvolá výnimku {FakeValuesService fakeValuesService = new FakeValuesService (new Locale ("en-GB"), new RandomService ()); Reťazec email = fakeValuesService.bothify ("???? ## @ gmail.com"); Matcher emailMatcher = Pattern.compile ("\ w {4} \ d{2}@gmail.com"). Matcher (email); assertTrue (emailMatcher.find ()); }

V tomto jednotkovom teste sme vytvoriť nový FakeValueService s miestnym nastavením sk-GB a Použi oboje metóda generovania jedinečnej falošnej adresy Gmail.

Funguje to tak nahradzujúce „?' s náhodnými písmenami a ‘#' s náhodnými číslami. Potom môžeme jednoduchým spôsobom skontrolovať, či je výstup správny Matcher skontrolovať.

3.2. Znova regulovať

Podobne regexifikovať generuje náhodnú sekvenciu na základe zvoleného vzoru regulárneho výrazu.

V tomto úryvku použijeme FakeValueService na vytvorenie náhodnej postupnosti podľa zadaného regulárneho výrazu:

@Test public void givenValidService_whenRegexifyCalled_checkPattern () vyvolá výnimku {FakeValuesService fakeValuesService = new FakeValuesService (new Locale ("en-GB"), new RandomService ()); Reťazec alphaNumericString = fakeValuesService.regexify ("[a-z1-9] {10}"); Matcher alphaNumericMatcher = Pattern.compile ("[a-z1-9] {10}"). Matcher (alphaNumericString); assertTrue (alphaNumericMatcher.find ()); }

Náš kód vytvorí malý alfanumerický reťazec s dĺžkou 10. Náš vzor kontroluje vygenerovaný reťazec proti regulárnemu výrazu.

4. JavaFaker Faker Trieda

The Faker trieda nám umožňuje používať falošné dátové triedy JavaFaker.

V tejto časti uvidíme, ako vytvoriť inštanciu a Faker objekt a použite ho na volanie falošných údajov:

Faker faker = nový Faker (); Reťazec streetName = faker.address (). StreetName (); Číslo reťazca = faker.address (). BuildingNumber (); Reťazec city = faker.address (). City (); Reťazec country = faker.address (). Country (); System.out.println (String.format ("% s \ n% s \ n% s \ n% s", číslo, ulica, mesto, krajina));

Vyššie používame FakerAdresa objekt na generovanie náhodnej adresy.

Keď spustíme tento kód, dostaneme príklad výstupu:

3188 hôr Dayna New Granvilleborough Tonga

Môžeme vidieť, že údaje nemajú jednotné geografické umiestnenie pretože sme neurčili miestne nastavenie. Aby sme to zmenili, v nasledujúcej časti sa naučíme zvyšovať relevantnosť údajov pre našu polohu.

Mohli by sme to použiť aj my podvodník objekt podobným spôsobom na vytvorenie údajov týkajúcich sa mnohých ďalších objektov, ako napríklad:

  • Obchodné
  • Pivo
  • Jedlo
  • Telefónne číslo

Celý zoznam nájdete tu.

5. Predstavujeme miestne nastavenia

Tu si predstavíme, ako na to použite miestne nastavenia na spresnenie vygenerovaných údajov pre jedno miesto. Zavedieme Faker s miestnym jazykom USA a miestnym jazykom Spojeného kráľovstva:

@Test public void givenJavaFakersWithDifferentLocals_thenHeckZipCodesMatchRegex () {Faker ukFaker = new Faker (new Locale ("en-GB")); Faker usFaker = nový Faker (nové miestne nastavenie („en-US“)); System.out.println (String.format ("americké PSČ:% s", usFaker.address (). ZipCode ())); System.out.println (String.format ("britské PSČ:% s", ukFaker.address (). ZipCode ())); Pattern ukPattern = Pattern.compile ("([Gg] [Ii] [Rr] 0 [Aa] {2}) | ((([A-Za-z] [0-9] {1,2}) |" + "(([[A-Za-z] [A-Ha-hJ-Yj-y] [0-9] {1,2})) | (([[A-Za-z] [0-9] [A -Za-z]) | ([A-Za-z] [A-Ha-hJ-Yj-y] "+" [0-9]? [A-Za-z])))) \ s? [0-9] [A-Za-z] {2}) "); Matcher ukMatcher = ukPattern.matcher (ukFaker.address (). ZipCode ()); assertTrue (ukMatcher.find ()); Matcher usMatcher = Pattern.compile ("^ \ d {5} (?: [- \ s] \ d {4})? $") .Matcher (usFaker.address (). ZipCode ()); assertTrue (usMatcher.find ()); }

Hore vidíme, že tí dvaja Fakeri s miestnym jazykom zodpovedajú ich regulárnym výrazom pre poštové smerovacie čísla krajín.

Ak miestne nastavenie prešlo do Faker neexistuje, Faker hodí a LocaleDoesNotExistException.

Budeme to testovať pomocou nasledujúceho testu jednotky:

@Test (expect = LocaleDoesNotExistException.class) public void givenWrongLocale_whenFakerInitialised_testExceptionThrown () {Faker wrongLocaleFaker = new Faker (new Locale ("en-seaWorld")); }

6. Jedinečnosť

Zatiaľ čo JavaFaker zdanlivo generuje údaje v náhodnom poradí, jedinečnosť nemožno zaručiť.

JavaFaker podporuje nasadenie svojho generátora pseudonáhodných čísel (PRNG) vo forme a RandomService poskytnúť deterministický výstup opakovaných volaní metód.

Jednoducho povedané, pseudonáhodnosť je proces, ktorý sa javí ako náhodný, ale nie je.

Ako to funguje, môžeme vidieť vytvorením dvoch Fakeri s rovnakým semenom:

@Test public void givenJavaFakersWithSameSeed_whenNameCalled_CheckSameName () {Faker faker1 = nový Faker (nový Random (24)); Faker faker2 = nový Faker (nový Random (24)); assertEquals (faker1.name (). meno (), faker2.name (). meno ()); } 

Vyššie uvedený kód vráti rovnaké meno z dvoch rôznych falošníkov.

7. Záver

V tomto tutoriáli sme preskúmali Knižnica JavaFaker na generovanie skutočne vyzerajúcich falošných údajov. Prebrali sme tiež dve užitočné triedy Faker triedy a FakeValueService trieda.

Preskúmali sme, ako môžeme použiť miestne nastavenia na generovanie údajov špecifických pre dané miesto.

Nakoniec sme diskutovali o tom, ako generované údaje sa zdajú iba náhodné a jedinečnosť údajov nie je zaručená.

Útržky kódu ako obvykle nájdete na GitHub.


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