Faker ist eine Portierung der Data::Faker-Bibliothek von Perl. Es handelt sich um eine Bibliothek zum Generieren gefälschter Daten wie Namen, Adressen und Telefonnummern.
Faker hilft Ihnen, realistische Testdaten zu generieren und Ihre Datenbank während der Entwicklung mit mehr als ein paar Datensätzen zu füllen.
Es ist sehr praktisch, um Screenshots zu machen (Screenshots für ein persönliches Projekt zu machen) und war der ursprüngliche Anstoß für die Entwicklung dieses Juwels.
Schnelle Links
- Lesen Sie die Dokumentation für die neueste Version.
- ? Sehen Sie, was sich in den letzten Versionen geändert hat.
In den Medien
- ? Mit großem Humor geht großes Entwicklerengagement einher – Forschung des KTH Royal Institute of Technology
- Computer und Kommunikation 4.5.2024, komplette Sendung - Deutschland Funk Radio Interview
Inhaltsverzeichnis
- Schwindler
- Schnelle Links
- Inhaltsverzeichnis
- Erste Schritte
- Verwendung
- Ein Hinweis zu den Generator-Versionen
- Sicherstellung einzigartiger Werte
- Deterministischer Zufall
- Anpassung
- Minitest und Faker >= 2,22
- Generatoren
- Mitwirken
- Versionierung
- Lizenz
Notizen
- Während Faker Daten nach dem Zufallsprinzip generiert, kann nicht garantiert werden, dass die zurückgegebenen Werte standardmäßig eindeutig sind. Informationen zum expliziten Angeben, wann Sie eindeutige Werte benötigen, finden Sie unter Sicherstellen eindeutiger Werte. Werte können auch deterministisch sein, wenn Sie die deterministische Funktion verwenden, siehe Deterministischer Zufall
- Dies ist der
main
von Faker und kann Änderungen enthalten, die noch nicht veröffentlicht wurden. Die verfügbaren Methoden finden Sie in der README-Datei Ihrer Version. Die Liste aller Versionen finden Sie hier.
Erste Schritte
Beginnen Sie damit, faker
in Ihr Gemfile aufzunehmen:
Führen Sie dann bundle install
.
Verwendung
Hier sind einige Beispiele für die Verwendung von Faker:
"5479 William Way, East Sonnyhaven, LA 63637"
Faker::Markdown.emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
Faker::TvShows::RuPaul.queen #=> "Violet Chachki"
Faker::Alphanumeric.alpha(number: 10) #=> "zlvubkrwga"
Faker::ProgrammingLanguage.name #=> "Ruby"">
require 'faker'
Faker :: Name . name #=> "Christophe Bartell"
Faker :: Address . full_address #=> "5479 William Way, East Sonnyhaven, LA 63637"
Faker :: Markdown . emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
Faker :: TvShows :: RuPaul . queen #=> "Violet Chachki"
Faker :: Alphanumeric . alpha ( number : 10 ) #=> "zlvubkrwga"
Faker :: ProgrammingLanguage . name #=> "Ruby"
Eine vollständige Liste der Generatoren finden Sie unter Generatoren.
Ein Hinweis zu den Generator-Versionen
Wenn Sie einen uninitialized constant Faker::[some_class]
-Fehler erhalten, befindet sich Ihre Version des Gems hinter main.
Um sicherzustellen, dass Ihr Edelstein der hier dokumentierte ist, ändern Sie die Zeile in Ihrer Gem-Datei wie folgt:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
Die Generatoren haben das @faker.version
-Tag über ihrer Implementierung. Anhand der Tags können Sie die Version identifizieren, in der der Generator hinzugefügt wurde:
# Faker::TvShows::ParksAndRec.character
# @faker.version 1.9.0
def character
fetch ( 'parks_and_rec.characters' )
end
Sicherstellung einzigartiger Werte
Um sicherzustellen, dass Faker eindeutige Werte generiert, stellen Sie Ihrem Methodenaufruf unique
voran:
Faker :: Name . unique . name # This will return a unique name every time it is called
Wenn zu viele eindeutige Werte von einem Generator angefordert werden, der über eine begrenzte Anzahl potenzieller Werte verfügt, kann eine Faker::UniqueGenerator::RetryLimitExceeded
-Ausnahme ausgelöst werden. Es ist möglich, den Datensatz eindeutiger Werte zu löschen, die beispielsweise zwischen Tests zurückgegeben wurden.
Faker :: Name . unique . clear # Clears used values for Faker::Name
Faker :: UniqueGenerator . clear # Clears used values for all generators
Sie können dem eindeutigen Generator auch einige bereits verwendete Werte übergeben, wenn es zu Kollisionen mit den generierten Daten kommt (z. B. indem Sie FactoryBot mit zufälligen und manuell festgelegten Werten verwenden).
# Usage:
# Faker::.unique.exclude(method, arguments, list)
# Add 'azerty' and 'wxcvbn' to the string generator with 6 char length
Faker :: Lorem . unique . exclude :string , [ number : 6 ] , %w[ azerty wxcvbn ]
Deterministischer Zufall
Faker unterstützt das Seeding seines Pseudozufallszahlengenerators (PRNG), um eine deterministische Ausgabe wiederholter Methodenaufrufe bereitzustellen.
"engage strategic platforms"
Faker::Config.random = Random.new(42)
Faker::Company.bs #=> "seize collaborative mindshare"
Faker::Company.bs #=> "engage strategic platforms"
Faker::Config.random = nil # seeds the PRNG using default entropy sources
Faker::Config.random.seed #=> 185180369676275068918401850258677722187
Faker::Company.bs #=> "cultivate viral synergies"">
Faker :: Config . random = Random . new ( 42 )
Faker :: Company . bs #=> "seize collaborative mindshare"
Faker :: Company . bs #=> "engage strategic platforms"
Faker :: Config . random = Random . new ( 42 )
Faker :: Company . bs #=> "seize collaborative mindshare"
Faker :: Company . bs #=> "engage strategic platforms"
Faker :: Config . random = nil # seeds the PRNG using default entropy sources
Faker :: Config . random . seed #=> 185180369676275068918401850258677722187
Faker :: Company . bs #=> "cultivate viral synergies"
Anpassung
Möglicherweise möchten Sie, dass Faker abhängig von Ihrem Standort auf der Welt Informationen druckt. Um Sie dabei zu unterstützen, verwendet Faker das I18n
Gem zum Speichern von Zeichenfolgen und Formaten, um die Namen und Postleitzahlen des von Ihnen gewählten Gebiets darzustellen.
Legen Sie einfach das gewünschte Gebietsschema wie unten gezeigt fest und Faker kümmert sich um den Rest.
Faker :: Config . locale = 'es'
# or
Faker :: Config . locale = :es
Um die Gebietsschemas von Faker zu überschreiben und in Thread-Serverumgebungen festzulegen, lesen Sie die README-Datei zu den Gebietsschemas.
Minitest und Faker >= 2,22
Um zu verhindern, dass Faker (Version >= 2.22) bei Verwendung von Minitest doppelte Werte generiert, müssen Sie möglicherweise Folgendes zur Datei test_helper.rb
rails_helper.rb
hinzufügen:
Faker :: Config . random = Random . new
Weitere Einzelheiten finden Sie in Problem Nr. 2534.
Generatoren
Dies ist die vollständige Liste der mit diesem Juwel verfügbaren Generatoren. Wenn Sie Einzelheiten dazu benötigen, schauen Sie unbedingt in der Dokumentation nach.
HINWEIS: Einige der unten aufgeführten Generatoren sind noch nicht veröffentlicht. Wenn Sie sie verwenden möchten, ändern Sie die Zeile in Ihrer Gem-Datei wie folgt:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
Standard
- Faker::Adresse
- Faker::Alphanumerisch
- Faker::Alt
- Faker::App
- Faker::Appliance
- Faker::Künstler
- Faker::Avatar
- Faker::Bank
- Faker::Barcode
- Faker::Bier
- Faker::Blut
- Faker::Boolean
- Faker::BossaNova
- Faker::Geschäft
- Faker::Kamera
- Faker::Cannabis
- Faker::ChileRut
- Faker::ChuckNorris
- Faker::Code
- Faker::Kaffee
- Faker::Münze
- Faker::Farbe
- Faker::Commerce
- Faker::Unternehmen
- Faker::Kompass
- Faker::Computer
- Faker::Konstruktion
- Faker::Cosmere
- Faker::Krypto
- Faker::CryptoCoin
- Faker::Währung
- Faker::Datum
- Faker::DcComics
- Faker::Demographisch
- Faker::Dessert
- Faker::Gerät
- Faker::Führerschein
- Faker::Drohne
- Faker::Pädagoge
- Faker::ElectricalComponents
- Faker::Emotion
- Faker::Esport
- Faker::Datei
- Faker::Finanzen
- Faker::Essen
- Faker::FunnyName
- Faker::Geschlecht
- Faker::GriechischePhilosophen
- Faker::Hacker
- Faker::Hipster
- Faker::Hobby
- Faker::Haus
- Faker::IdNumber
- Faker::IndustrySegments
- Faker::Internet
- Faker::Rechnung
- Faker::Job
- Faker::Json
- Faker::Kpop
- Faker::Lorem
- Faker::LoremFlickr
- Faker::Markdown
- Faker::Marketing
- Faker::Messung
- Faker::Militär
- Faker::Berg
- Faker::Name
- Faker::Nation
- Faker::NatoPhoneticAlphabet
- Faker::NationalHealthService
- Faker::Nummer
- Faker::Omniauth
- Faker::PhoneNumber
- Faker::Placeholdit
- Faker::ProgrammingLanguage
- Faker::Beziehung
- Faker::Restaurant
- Faker::Wissenschaft
- Faker::SlackEmoji
- Faker::Quelle
- Faker::Südafrika
- Faker::Space
- Faker::String
- Faker::Streifen
- Faker::Abonnement
- Faker::Superheld
- Faker::Tee
- Faker::Team
- Faker::Theater
- Faker::Zeit
- Faker::Twitter
- Faker::Typen
- Faker::Universität
- Faker::Fahrzeug
- Faker::Verben
- Faker::VulnerabilityIdentifier
- Faker::WorldCup
Blockchain
- Faker::Blockchain::Aeternity
- Faker::Blockchain::Bitcoin
- Faker::Blockchain::Ethereum
- Faker::Blockchain::Tezos
Bücher
- Faker::Buch
- Faker::Books::CultureSeries
- Faker::Books::Dune
- Faker::Books::Lovecraft
- Faker::Books::TheKingkillerChronicle
Fantasie
Reisen
- Faker:Travel::Airport
- Faker:Travel::TrainStation
Kreatur
- Faker::Creature::Animal
- Faker::Creature::Vogel
- Faker::Creature::Cat
- Faker::Creature::Dog
- Faker::Creature::Pferd
Spiele
- Faker::Spiel
- Faker::Games::ClashOfClans
- Faker::Games::DnD
- Faker::Games::Dota
- Faker::Games::ElderScrolls
- Faker::Games::Fallout
- Faker::Games::FinalFantasyXIV
- Faker::Games::HalfLife
- Faker::Games::Heroes
- Faker::Games::HeroesOfTheStorm
- Faker::Games::LeagueOfLegends
- Faker::Games::Minecraft
- Faker::Games::Myst
- Faker::Games::Overwatch
- Faker::Games::Pokemon
- Faker::Games::SonicTheHedgehog
- Faker::Games::StreetFighter
- Faker::Games::SuperMario
- Faker::Games::SuperSmashBros
- Faker::Games::Touhou
- Faker::Games::WarhammerFantasy
- Faker::Games::Witcher
- Faker::Games::WorldOfWarcraft
- Faker::Games::Zelda
Japanische Medien
- Faker::JapaneseMedia::CowboyBebop
- Faker::JapaneseMedia::DragonBall
- Faker::JapaneseMedia::OnePiece
- Faker::JapaneseMedia::StudioGhibli
- Faker::JapaneseMedia::SwordArtOnline
- Faker::JapaneseMedia::Naruto
- Faker::JapaneseMedia::Doraemon
- Faker::JapaneseMedia::Conan
- Faker::JapaneseMedia::FullmetalAlchemistBrotherhood
Filme
- Faker::Film
- Faker::Filme::Avatar
- Faker::Movies::BackToTheFuture
- Faker::Movies::Departed
- Faker::Movies::Ghostbusters
- Faker::Filme::HarryPotter
- Faker::Movies::HitchhikersGuideToTheGalaxy
- Faker::Filme::Hobbit
- Faker::Movies::HowToTrainYourDragon
- Faker::Movies::Lebowski
- Faker::Movies::LordOfTheRings
- Faker::Movies::PrincessBride
- Faker::Movies::StarWars
- Faker::Movies::TRON
- Faker::Movies::VForVendetta
Musik
- Faker::Musik
- Faker::Music::GratefulDead
- Faker::Music::Hiphop
- Faker::Music::Opera
- Faker::Music::PearlJam
- Faker::Music::Phish
- Faker::Music::Prince
- Faker::Music::RockBand
- Faker::Music::Rush
- Faker::Music::SmashingPumpkins
- Faker::Music::UmphreysMcgee
Zitate
- Faker::Zitat
- Faker::Quotes::Chiquito
- Faker::Quotes::Rajnikanth
- Faker::Zitate::Shakespeare
Sport
- Faker::Sport
- Faker::Sport::Basketball
- Faker::Sport::Schach
- Faker::Sport::Fußball
- Faker::Sport::Bergsteigen
- Faker::Sports::Volleyball
Fernsehsendungen
- Faker::TvShows::AquaTeenHungerForce
- Faker::TvShows::Archer
- Faker::TvShows::BigBangTheory
- Faker::TvShows::BojackHorseman
- Faker::TvShows::BreakingBad
- Faker::TvShows::BrooklynNineNine
- Faker::TvShows::Buffy
- Faker::TvShows::Community
- Faker::TvShows::DrWho
- Faker::TvShows::DumbAndDumber
- Faker::TvShows::FamilyGuy
- Faker::TvShows::FinalSpace
- Faker::TvShows::Friends
- Faker::TvShows::GameOfThrones
- Faker::TvShows::HeyArnold
- Faker::TvShows::HowIMetYourMother
- Faker::TvShows::MichaelScott
- Faker::TvShows::NewGirl
- Faker::TvShows::ParksAndRec
- Faker::TvShows::RickAndMorty
- Faker::TvShows::RuPaul
- Faker::TvShows::Seinfeld
- Faker::TvShows::SiliconValley
- Faker::TvShows::Simpsons
- Faker::TvShows::SouthPark
- Faker::TvShows::Spongebob
- Faker::TvShows::StarTrek
- Faker::TvShows::Stargate
- Faker::TvShows::StrangerThings
- Faker::TvShows::Suits
- Faker::TvShows::Supernatural
- Faker::TvShows::TheExpanse
- Faker::TvShows::TheFreshPrinceOfBelAir
- Faker::TvShows::TheITCrowd
- Faker::TvShows::TheThickOfIt
- Faker::TvShows::TwinPeaks
- Faker::TvShows::VentureBros
Standorte
- Faker::Standorte::Australien
Mitwirken
Hinweis : Wir akzeptieren keine Vorschläge für neue Generatoren und Gebietsschemas. Der beitragende Leitfaden enthält einige Anmerkungen zu dieser Entscheidung.
Schauen Sie sich das Contributing-Dokument an, um Anweisungen zum Einrichten des Repos auf Ihrem Computer, zum Öffnen von Fehlerberichten, zum Verständnis der Codebasis und zum Erstellen einer guten Pull-Anfrage zu erhalten.
Es gibt einen Discord-Kanal, um alles über Verbesserungen oder Funktionswünsche zu besprechen.
Vielen Dank, Mitwirkende!
Versionierung
Faker folgt Semantic Versioning 2.0, wie unter https://semver.org definiert.
Lizenz
Dieser Code kann gemäß den Bedingungen der MIT-Lizenz kostenlos verwendet werden.