Faker — это порт библиотеки Perl Data::Faker. Это библиотека для создания поддельных данных, таких как имена, адреса и номера телефонов.
Faker помогает вам генерировать реалистичные тестовые данные и наполнять вашу базу данных несколькими записями во время разработки.
Он очень удобен для создания скриншотов (снимков скриншотов для личного проекта), и это послужило первоначальным толчком к созданию этого драгоценного камня.
Быстрые ссылки
- Прочтите документацию последней версии.
- ? Посмотрите, что изменилось в последних версиях.
В СМИ
- ? С отличным юмором приходит отличное взаимодействие с разработчиками - исследование Королевского технологического института KTH
- Computer und Kommunikation 4.5.2024, полная рассылка - Интервью на радио Deutschland Funk Radio
Оглавление
- Фейкер
- Быстрые ссылки
- Оглавление
- Начиная
- Использование
- Примечание о версиях генераторов
- Обеспечение уникальных ценностей
- Детерминированный случайный
- Кастомизация
- Минитест и Факер >= 2,22
- Генераторы
- Содействие
- Управление версиями
- Лицензия
Примечания
- Хотя Faker генерирует данные случайным образом, уникальность возвращаемых значений по умолчанию не гарантируется. Чтобы явно указать, когда вам требуются уникальные значения, см. раздел «Обеспечение уникальных значений». Значения также могут быть детерминированными, если вы используете детерминированную функцию, см. Детерминированный случайный выбор.
- Это
main
ветка Faker и может содержать еще не выпущенные изменения. Пожалуйста, обратитесь к README вашей версии, чтобы узнать о доступных методах. Список всех версий доступен здесь.
Начиная
Начните с включения faker
в ваш Gemfile:
Затем запустите bundle install
.
Использование
Вот несколько примеров использования 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"
Полный список генераторов см. в разделе Генераторы.
Примечание о версиях генераторов
Если вы получаете uninitialized constant Faker::[some_class]
, ваша версия драгоценного камня находится позади основной.
Чтобы убедиться, что ваш драгоценный камень описан здесь, измените строку в своем Gemfile на:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
Генераторы имеют тег @faker.version
в верхней части своей реализации. По тегам можно определить версию добавления генератора:
# Faker::TvShows::ParksAndRec.character
# @faker.version 1.9.0
def character
fetch ( 'parks_and_rec.characters' )
end
Обеспечение уникальных ценностей
Чтобы Faker генерировал уникальные значения, добавьте к вызову метода префикс unique
:
Faker :: Name . unique . name # This will return a unique name every time it is called
Если от генератора, который имеет ограниченное количество потенциальных значений, запрашивается слишком много уникальных значений, может возникнуть исключение Faker::UniqueGenerator::RetryLimitExceeded
. Можно очистить запись уникальных значений, которые были возвращены, например, между тестами.
Faker :: Name . unique . clear # Clears used values for Faker::Name
Faker :: UniqueGenerator . clear # Clears used values for all generators
Вы также можете передать некоторые уже использованные значения уникальному генератору, если у вас есть конфликты с сгенерированными данными (например, использование FactoryBot со случайными и заданными вручную значениями).
# 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 ]
Детерминированный случайный
Faker поддерживает заполнение своего генератора псевдослучайных чисел (PRNG) для обеспечения детерминированного вывода повторяющихся вызовов методов.
"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"
Кастомизация
Вы можете захотеть, чтобы Faker распечатывал информацию в зависимости от вашего местоположения в мире. Чтобы помочь вам в этом, Faker использует гем I18n
для хранения строк и форматов, представляющих имена и почтовые индексы выбранной вами области.
Просто установите желаемую локаль, как показано ниже, а Faker позаботится обо всем остальном.
Faker :: Config . locale = 'es'
# or
Faker :: Config . locale = :es
Чтобы переопределить локали Faker и установить их в средах многопоточных серверов, ознакомьтесь с локалями README.
Минитест и Факер >= 2,22
Чтобы Faker (версия >= 2.22) не генерировал повторяющиеся значения при использовании Minitest, вам может потребоваться добавить следующее в файл test_helper.rb
rails_helper.rb
:
Faker :: Config . random = Random . new
Дополнительные сведения см. в выпуске № 2534.
Генераторы
Это полный список генераторов, доступных с этим драгоценным камнем. Если вам нужны подробности о каком-либо из них, обязательно обратитесь к документации.
ПРИМЕЧАНИЕ. Некоторые из приведенных ниже генераторов еще не выпущены. Если вы хотите их использовать, измените строку в вашем драгоценном файле на:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
По умолчанию
- Факер::Адрес
- Факер::Буквенно-цифровой
- Факер::Древний
- Факер::Приложение
- Факер::Прибор
- Факер::Художник
- Факер::Аватар
- Факер::Банк
- Факер::Штрих-код
- Фейкер::Пиво
- Фейкер::Кровь
- Факер::Логическое значение
- Факер::БоссаНова
- Факер::Бизнес
- Факер::Камера
- Факер::Каннабис
- Факер::ЧилиРут
- Фейкер::ЧакНоррис
- Факер::Код
- Факер::Кофе
- Факер::Монета
- Факер::Цвет
- Факер::Коммерция
- Факер::Компания
- Факер::Компас
- Факер::Компьютер
- Факер::Строительство
- Факер::Космир
- Факер::Крипто
- Факер::КриптоКоин
- Факер:: Валюта
- Факер::Дата
- Факер::DcComics
- Факер::Демографический
- Факер::Десерт
- Факер::Устройство
- Faker::DrivingLicence
- Факер::Дрон
- Факер::Педагог
- Факер::ElectricalComponents
- Факер::Эмоция
- Факер::Эспорт
- Факер::Файл
- Факер::Финансы
- Факер::Еда
- Факер::FunnyName
- Факер::Пол
- Faker::GreekPhilosophers
- Факер::Хакер
- Фейкер::Хипстер
- Факер::Хобби
- Фейкер::Дом
- Факер::IdNumber
- Факер::IndustrySegments
- Факер::Интернет
- Факер::Счет-фактура
- Фейкер::Иов
- Факер::Json
- Фейкер::Kpop
- Факер::Лорем
- Факер::LoremFlickr
- Факер::Маркдаун
- Фейкер::Маркетинг
- Факер::Измерение
- Факер::Военные
- Факер::Гора
- Факер::Имя
- Факер::Нация
- Faker::NatoPhoneticAlphabet
- Факер::NationalHealthService
- Факер::Номер
- Факер::Омниаут
- Факер::PhoneNumber
- Факер::Placeholdit
- Факер::ProgrammingLanguage
- Факер::Отношения
- Факер::Ресторан
- Факер::Наука
- Факер::SlackEmoji
- Факер::Источник
- Факер::Южная Африка
- Факер::Космос
- Факер::Строка
- Факер::Полоса
- Факер::Подписка
- Факер::Супергерой
- Факер::Чай
- Факер::Команда
- Факер::Театр
- Факер::Время
- Фейкер::Твиттер
- Факер::Типы
- Факер::Университет
- Факер::Транспортное средство
- Факер::Глаголы
- Faker::VulnerabilityIdentifier
- Факер::Чемпионат мира
Блокчейн
- Факер::Блокчейн::Aeternity
- Фейкер::Блокчейн::Биткойн
- Факер::Блокчейн::Эфириум
- Факер::Блокчейн::Tezos
Книги
- Факер::Книга
- Faker::Books::CultureSeries
- Факер::Книги::Дюна
- Факер::Книги::Лавкрафт
- Faker::Books::TheKingkillerChronicle
Фантастика
Путешествовать
- Faker:Путешествия::Аэропорт
- Faker:Travel::TrainStation
Существо
- Факер::Существо::Животное
- Фейкер::Существо::Птица
- Фейкер::Существо::Кошка
- Фейкер::Существо::Собака
- Фейкер::Существо::Лошадь
Игры
- Факер::Игра
- Faker::Games::ClashOfClans
- Факер::Games::DnD
- Факер::Игры::Dota
- Faker::Games::ElderScrolls
- Факер::Игры::Fallout
- Faker::Games::FinalFantasyXIV
- Факер::Games::HalfLife
- Факер::Игры::Герои
- Faker::Games::HeroesOfTheStorm
- Faker::Games::LeagueOfLegends
- Факер::Игры::Minecraft
- Факер::Games::Myst
- Факер::Игры::Overwatch
- Факер::Игры::Покемон
- Faker::Games::SonicTheHedgehog
- Faker::Games::StreetFighter
- Факер::Игры::СуперМарио
- Факер::Игры::SuperSmashBros
- Faker::Games::Тохо
- Факер::Игры::WarhammerFantasy
- Факер::Игры::Ведьмак
- Faker::Games::WorldOfWarcraft
- Факер::Games::Zelda
Японские СМИ
- Faker::JapaneseMedia::CowboyBebop
- Faker::JapaneseMedia::DragonBall
- Faker::JapaneseMedia::OnePiece
- Faker::JapaneseMedia::StudioGhibli
- Faker::JapaneseMedia::SwordArtOnline
- Faker::JapaneseMedia::Наруто
- Faker::JapaneseMedia::Doraemon
- Faker::JapaneseMedia::Конан
- Faker::JapaneseMedia::FullmetalAlchemistBrotherhood
Фильмы
- Факер::Фильм
- Факер::Фильмы::Аватар
- Faker::Movies::BackToTheFuture
- Faker::Movies::Departed
- Фейкер::Фильмы::Охотники за привидениями
- Фейкер::Фильмы::ГарриПоттер
- Faker::Movies::HitchhikersGuideToTheGalaxy
- Факер::Фильмы::Хоббит
- Faker::Movies::HowToTrainYourDragon
- Факер::Фильмы::Лебовски
- Faker::Movies::LordOfTheRings
- Faker::Movies::PrincessBride
- Факер::Фильмы::Звездные войны
- Факер::Фильмы::ТРОН
- Faker::Movies::VForVendetta
Музыка
- Факер::Музыка
- Faker::Music::GratefulDead
- Факер::Музыка::Хип-хоп
- Факер::Музыка::Опера
- Faker::Music::PearlJam
- Факер::Музыка::Фиш
- Факер::Музыка::Принц
- Faker::Music::RockBand
- Faker::Music::Rush
- Faker::Music::SmashingPumpkins
- Faker::Music::UmphreysMcgee
Кавычки
- Факер::Цитата
- Факер::Цитаты::Чикито
- Faker::Цитаты::Раджникант
- Фейкер::Цитаты::Шекспир
Спорт
- Факер::Спорт
- Faker::Спорт::Баскетбол
- Факер::Спорт::Шахматы
- Факер::Спорт::Футбол
- Факер::Спорт::Альпинизм
- Faker::Спорт::Волейбол
ТВ-шоу
- Faker::TvShows::AquaTeenHungerForce
- Faker::TvShows::Арчер
- Faker::TvShows::BigBangTheory
- Faker::TvShows::BojackHorseman
- Faker::TvShows::BreakingBad
- Faker::TvShows::BrooklynNineNine
- Faker::TvShows::Баффи
- Faker::TvShows::Сообщество
- Факер::TvShows::DrWho
- Faker::TvShows::DumbAndDumber
- Faker::TvShows::FamilyGuy
- Faker::TvShows::FinalSpace
- Факер::Телешоу::Друзья
- Факер::TvShows::GameOfThrones
- Faker::TvShows::HeyArnold
- Faker::TvShows::HowIMetYourMother
- Faker::TvShows::МайклСкотт
- Факер::TvShows::NewGirl
- Faker::TvShows::ParksAndRec
- Faker::TvShows::RickAndMorty
- Faker::TvShows::РуПол
- Faker::TvShows::Сейнфельд
- Faker::TvShows::SiliconValley
- Faker::TvShows::Симпсоны
- Faker::TvShows::SouthPark
- Faker::TvShows::Губка Боб
- Faker::TvShows::StarTrek
- Faker::TvShows::Звездные врата
- Faker::TvShows::StrangerThings
- Faker::TvShows::Suits
- Факер::Телешоу::Сверхъестественное
- Faker::TvShows::TheExpanse
- Faker::TvShows::TheFreshPrinceOfBelAir
- Faker::TvShows::TheITCrowd
- Faker::TvShows::TheThickOfIt
- Факер::TvShows::ТвинПикс
- Faker::TvShows::VentureBros
Локации
- Faker::Локации::Австралия
Содействие
Примечание . Мы не принимаем предложения по новым генераторам и локалям. В руководстве для участников есть несколько примечаний по поводу этого решения.
Ознакомьтесь с документом «Содействие» для получения инструкций по настройке репозитория на вашем компьютере, открытию отчетов об ошибках, пониманию кодовой базы и созданию хорошего запроса на включение.
Существует канал Discord, где можно обсудить все, что касается улучшений или запросов на добавление новых функций.
Спасибо, участники!
Управление версиями
Faker следует семантическому управлению версиями 2.0, как определено на https://semver.org.
Лицензия
Этот код можно использовать бесплатно в соответствии с условиями лицензии MIT.