מדריך ל- JavaFaker

1. סקירה כללית

JavaFaker היא ספרייה שניתן להשתמש בה כדי ליצור מגוון רחב של נתונים אמיתיים למראה מכתובות ועד הפניות לתרבות פופולרית.

במדריך זה נבחן כיצד להשתמש בשיעורים של JavaFaker כדי ליצור נתונים מזויפים. נתחיל בהצגת ה- פייקר הכיתה וה FakeValueServiceלפני שעברנו להכנסת מקומות כדי להפוך את הנתונים ספציפיים יותר למקום יחיד.

לבסוף נדון עד כמה הנתונים ייחודיים. כדי לבדוק את השיעורים של JavaFaker, נשתמש בביטויים רגולריים. תוכל לקרוא עליהם עוד כאן.

2. תלות

להלן התלות היחידה שנצטרך להתחיל עם JavaFaker.

ראשית, התלות שנצטרך לפרויקטים מבוססי Maven:

 com.github.javafaker javafaker 0.15 

עבור משתמשי Gradle, אתה יכול להוסיף את הדברים הבאים אל שלך build.gradle קוֹבֶץ:

קבוצת הידור: 'com.github.javafaker', שם: 'javafaker', גרסה: '0.15'

3. FakeValueService

ה FakeValueService הכיתה מספקת שיטות ליצירת רצפים אקראיים כמו גם לפתור .yml קבצים המשויכים לאזור.

בחלק זה נסקור כמה מהשיטות השימושיות ש- FakerValueService צריך להציע.

3.1. אותיות, ספרו, ו מרגיעים

שלוש שיטות שימושיות הן אותיות, מספרי, ו מרגיעים. אותיות עוזר לייצר רצפים אקראיים של דמויות אלפביתיות.

הַבָּא, ספרו פשוט מייצר רצפים מספריים.

סוף כל סוף, מרגיעים הוא שילוב של השניים ויכולים ליצור רצפים אלפאנומריים אקראיים - שימושי ללעוג לדברים כמו מחרוזות זיהוי.

FakeValueService דורש תוקף אזור, כמו גם א שירות אקראי:

@ מבחן ציבורי בטל כאשרBothifyCalled_checkPatternMatches () זורק חריג {FakeValuesService fakeValuesService = FakeValuesService חדש (אזור חדש ("en-GB"), חדש RandomService ()); דוא"ל מחרוזת = fakeValuesService.bothify ("???? ## @ gmail.com"); התאמה emailMatcher = Pattern.compile ("\ w {4} \ d{2}@gmail.com"). התאמה (אימייל); assertTrue (emailMatcher.find ()); }

במבחן היחידה הזה אנו ליצור חדש FakeValueService עם אזור של en-GB ו להשתמש ב לשכך שיטה ליצירת כתובת Gmail מזויפת ייחודית.

זה עובד על ידי מחליף '?' עם אותיות אקראיות ו ‘#' עם מספרים אקראיים. לאחר מכן נוכל לבדוק שהפלט נכון בעזרת פשוט שידוך חשבון.

3.2. ציין מחדש

בדומה לכך, לחיות מחדש מייצר רצף אקראי המבוסס על תבנית regex שנבחרה.

בקטע זה נשתמש ב- FakeValueService כדי ליצור רצף אקראי בעקבות regex שצוין:

@Test הציבור בטל givenValidService_whenRegexifyCalled_checkPattern () זורק Exception {FakeValuesService fakeValuesService = FakeValuesService חדש (אזור חדש ("en-GB"), חדש RandomService ()); מחרוזת alphaNumericString = fakeValuesService.regexify ("[a-z1-9] {10}"); התאמה alphaNumericMatcher = Pattern.compile ("[a-z1-9] {10}"). התאמה (alphaNumericString); assertTrue (alphaNumericMatcher.find ()); }

שֶׁלָנוּ קוד יוצר מחרוזת אלפא-נומרית באותיות קטנות באורך 10. הדפוס שלנו בודק את המחרוזת שנוצרה מול ה- regex.

4. JavaFaker פייקר מעמד

ה פייקר מעמד מאפשר לנו להשתמש בשיעורי הנתונים המזויפים של JavaFaker.

בחלק זה נראה כיצד להפעיל א פייקר התנגד והשתמש בו בכדי לקרוא לכמה נתונים מזויפים:

זיוף מזויף = מזויף חדש (); מחרוזת streetName = faker.address (). StreetName (); מספר מחרוזת = faker.address (). BuildingNumber (); מחרוזת עיר = faker.address (). עיר (); מדינה מחרוזת = faker.address (). מדינה (); System.out.println (String.format ("% s \ n% s \ n% s \ n% s", number, streetName, עיר, מדינה));

למעלה, אנו משתמשים ב- פייקרכתובת התנגד ליצירת כתובת אקראית.

כאשר אנו מריצים קוד זה, נקבל דוגמה לפלט:

3188 הרי דיינה ניו גרנווילבורו טונגה

אנו יכולים לראות כי לנתונים אין מיקום גיאוגרפי אחד מכיוון שלא ציינו אזור. כדי לשנות זאת, נלמד להפוך את הנתונים לרלוונטיים יותר למיקום שלנו בחלק הבא.

נוכל גם להשתמש בזה זיוף אובייקט בצורה דומה ליצירת נתונים הנוגעים לאובייקטים רבים נוספים כגון:

  • עֵסֶק
  • בירה
  • מזון
  • מספר טלפון

תוכלו למצוא את הרשימה המלאה כאן.

5. הצגת מקומות

כאן נציג כיצד השתמש במקומות כדי להפוך את הנתונים שנוצרו ספציפיים יותר למיקום יחיד. נציג א פייקר עם אזור בארה"ב, ומקומי בבריטניה:

@ מבחן בטל פומבי שניתן JavaFakersWithDifferentLocals_thenHeckZipCodesMatchRegex () {Faker ukFaker = Faker חדש (אזור חדש ("en-GB")); Faker usFaker = Faker חדש (אזור חדש ("en-US")); System.out.println (String.format ("מיקוד אמריקאי:% s", usFaker.address (). ZipCode ())); System.out.println (String.format ("מיקוד בריטי:% s", ukFaker.address (). ZipCode ())); תבנית 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 ()); התאמה usMatcher = Pattern.compile ("^ \ d {5} (?: [- \ s] \ d {4})? $"). Matcher (usFaker.address (). ZipCode ()); assertTrue (usMatcher.find ()); }

מעל אנו רואים כי השניים זיופים עם המקום תואמים את הרישומים שלהם למיקודים במדינות.

אם המקום עבר ל פייקר אינו קיים, ה פייקר זורק א LocaleDoesNotExistException.

נבדוק זאת במבחן היחידה הבא:

@Test (צפוי = LocaleDoesNotExistException.class) חלל ציבורי givenWrongLocale_whenFakerInitialised_testExceptionThrown () {Faker wrongLocaleFaker = Faker חדש (אזור חדש ("en-seaWorld")); }

6. ייחודיות

בעוד JavaFaker לכאורה מייצר נתונים באקראי, לא ניתן להבטיח את הייחודיות.

JavaFaker תומך בזריעה של מחולל המספרים הפסאודו-אקראי שלה (PRNG) בצורה של א שירות אקראי לספק את הפלט הדטרמיניסטי של שיחות שיטה חוזרות ונשנות.

במילים פשוטות, פסאודורנדומיות היא תהליך שנראה אקראי אך איננו.

אנו יכולים לראות כיצד זה עובד על ידי יצירת שניים זיופים עם אותו זרע:

@Test הציבור בטל שניתןJavaFakersWithSameSeed_whenNameCalled_CheckSameName () {Faker faker1 = Faker חדש (אקראי חדש (24)); Faker faker2 = Faker חדש (אקראי חדש (24)); assertEquals (faker1.name (). firstName (), faker2.name (). firstname ()); } 

הקוד שלמעלה מחזיר את אותו שם משניים זיופים שונים.

7. מסקנה

במדריך זה בחנו את ספריית JavaFaker לייצור נתונים מזויפים במראה אמיתי. סקרנו גם שני שיעורים שימושיים פייקר הכיתה וה FakeValueService מעמד.

בדקנו כיצד נוכל להשתמש במקומות ליצירת נתונים ספציפיים למיקום.

לבסוף דנו כיצד ה הנתונים שנוצרו נראים רק אקראיים וייחודיות הנתונים אינה מובטחת.

כרגיל, ניתן למצוא קטעי קוד ב- GitHub.


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