Faker 是 Perl 的 Data::Faker 函式庫的移植。它是一個用於產生姓名、地址和電話號碼等虛假資料的庫。
Faker 可協助您產生真實的測試數據,並在您進行開發時使用多筆記錄填入資料庫。
它對於截取螢幕截圖(為個人專案截取螢幕截圖)非常方便,並且它是創建此 gem 的原始動力。
快速連結
在媒體上
- ?幽默感帶來開發者的高度參與 - KTH 皇家理工學院研究
- 電腦與通訊 4.5.2024,komplette Sendung - 德國放克電台採訪
目錄
- 騙子
- 快速連結
- 目錄
- 入門
- 用法
- 關於 Generators 版本的註釋
- 確保獨特的價值觀
- 確定性隨機
- 客製化
- Minitest 和 Faker >= 2.22
- 發電機
- 貢獻
- 版本控制
- 執照
筆記
- 雖然 Faker 隨機產生數據,但預設情況下不能保證回傳值是唯一的。若要明確指定何時需要唯一值,請參閱確保唯一值。如果您使用確定性特徵,數值也可以是確定性的,請參閱確定性隨機
- 這是 Faker 的
main
分支,可能包含尚未發布的變更。請參閱您版本的自述文件以了解可用的方法。所有版本的清單可在此處找到。
入門
首先在您的 Gemfile 中包含faker
:
然後運行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"
有關生成器的完整列表,請參閱生成器。
關於 Generators 版本的註釋
如果您收到uninitialized constant Faker::[some_class]
錯誤,則您的 gem 版本落後於 main。
為了確保您的 gem 是此處記錄的 gem,請將 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
gem 來儲存字串和格式來表示您選擇的區域的名稱和郵遞區號。
只需如下所示設置您想要的區域設置,Faker 就會處理剩下的事情。
Faker :: Config . locale = 'es'
# or
Faker :: Config . locale = :es
若要覆蓋 Faker 的語言環境,並將其設定在執行緒伺服器環境中,請查看語言環境自述文件。
Minitest 和 Faker >= 2.22
為了防止 Faker(版本 >= 2.22)在使用 Minitest 時產生重複值,您可能需要將以下內容新增至test_helper.rb
或rails_helper.rb
檔案:
Faker :: Config . random = Random . new
有關更多詳細信息,請參閱問題#2534。
發電機
這是此 gem 可用的生成器的完整清單。如果您需要有關其中任何一個的詳細信息,請務必查閱文件。
注意:下面的一些生成器尚未發布。如果您想使用它們,請將 gemfile 中的行更改為:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
預設
- Faker::地址
- Faker::字母數字
- Faker::古代
- Faker::應用程式
- Faker::電器
- Faker::藝術家
- Faker::頭像
- Faker::銀行
- Faker::條碼
- Faker::啤酒
- Faker::血
- Faker::布林值
- Faker::博薩諾瓦
- Faker::商業
- Faker::相機
- Faker::大麻
- Faker::智利魯特
- Faker::查克·諾里斯
- Faker::程式碼
- Faker::咖啡
- Faker::硬幣
- Faker::顏色
- Faker::商業
- Faker::公司
- Faker::指南針
- Faker::電腦
- Faker::建設
- Faker::科斯米爾
- Faker::加密貨幣
- Faker::加密幣
- Faker::貨幣
- Faker::日期
- Faker::Dc漫畫
- Faker::人口統計
- Faker::甜點
- Faker::設備
- Faker::駕駛執照
- Faker::無人機
- Faker::教育者
- Faker::電氣元件
- Faker::情感
- Faker::電競
- Faker::文件
- Faker::財經
- Faker::食物
- Faker::有趣的名字
- Faker::性別
- Faker::希臘哲學家
- Faker::駭客
- Faker::潮人
- Faker::愛好
- Faker::房子
- Faker::IdNumber
- Faker::行業細分
- Faker::互聯網
- Faker::發票
- Faker::工作
- Faker::傑森
- Faker::韓流
- Faker::洛雷姆
- Faker::LoremFlickr
- Faker::Markdown
- Faker::行銷
- Faker::測量
- Faker::軍事
- Faker::山
- Faker::名字
- Faker::國家
- Faker::NatoPhoneticAlphabet
- Faker::國民醫療保健服務
- Faker::號碼
- Faker::Omniauth
- Faker::電話號碼
- Faker::Placeholdit
- Faker::程式語言
- Faker::關係
- Faker::餐廳
- Faker::科學
- Faker::SlackEmoji
- Faker::來源
- Faker::南非
- Faker::太空
- Faker::字串
- Faker::條紋
- Faker::訂閱
- Faker::超級英雄
- Faker::茶
- Faker::團隊
- Faker::劇院
- Faker::時間
- Faker::推特
- Faker::類型
- Faker::大學
- Faker::車輛
- Faker::動詞
- Faker::漏洞標識符
- Faker::世界盃
區塊鏈
- Faker::區塊鏈::Aeternity
- Faker::區塊鏈::比特幣
- Faker::區塊鏈::以太坊
- Faker::區塊鏈::Tezos
圖書
- Faker::書
- Faker::書籍::文化系列
- Faker::書籍::沙丘
- Faker::書::洛夫克拉夫特
- Faker::書籍::弒君者編年史
幻想
旅行
- Faker:旅行::機場
- Faker:旅行::火車站
生物
- Faker::生物::動物
- Faker::生物::鳥
- Faker::生物::貓
- Faker::生物::狗
- Faker::生物::馬
遊戲
- Faker::遊戲
- Faker::遊戲::部落衝突
- Faker::遊戲::DnD
- Faker::遊戲::Dota
- Faker::遊戲::上古卷軸
- Faker::遊戲::輻射
- Faker::遊戲::最終幻想XIV
- Faker::遊戲::半條命
- Faker::遊戲::英雄
- Faker::遊戲::風暴英雄
- Faker::遊戲::英雄聯盟
- Faker::遊戲::我的世界
- Faker::遊戲::神秘島
- Faker::遊戲::守望先鋒
- Faker::遊戲::口袋妖怪
- Faker::遊戲::刺蝟索尼克
- Faker::遊戲::街頭霸王
- Faker::遊戲::超級瑪利歐
- Faker::遊戲::任天堂明星大亂鬥
- Faker::遊戲::東方
- Faker::遊戲::戰鎚幻想
- Faker::遊戲::巫師
- Faker::遊戲::魔獸世界
- Faker::遊戲::薩爾達
日本媒體
- Faker::日本媒體::星際牛仔
- Faker::日本媒體::七龍珠
- Faker::日本媒體::OnePiece
- Faker::日本媒體::吉卜力工作室
- Faker::日本媒體::刀劍神域
- Faker::日本媒體::火影忍者
- Faker::日本媒體::哆啦A夢
- Faker::日本媒體::柯南
- Faker::日本媒體::鋼之鍊金術師兄弟會
電影
- Faker::電影
- Faker::電影::阿凡達
- Faker::電影::回到未來
- Faker::電影::離開
- Faker::電影::捉鬼敢死隊
- Faker::電影::哈利波特
- Faker::電影::銀河系漫遊指南
- Faker::電影::哈比人
- Faker::電影::如何訓練你的龍
- Faker::電影::Lebowski
- Faker::電影::魔戒
- Faker::電影::公主新娘
- Faker::電影::星際大戰
- Faker::電影::創
- Faker::電影::VForVendetta
音樂
- Faker::音樂
- Faker::音樂::GratefulDead
- Faker::音樂::嘻哈
- Faker::音樂::歌劇
- Faker::音樂::PearlJam
- Faker::音樂::網路釣魚
- Faker::音樂::王子
- Faker::音樂::搖滾樂團
- Faker::音樂::Rush
- Faker::音樂::SmashingPumpkins
- Faker::音樂::UmphreysMcgee
引號
- Faker::引用
- Faker::引述::Chiquito
- Faker::引用::Rajnikanth
- Faker::語錄::莎士比亞
運動的
- Faker::體育
- Faker::體育::籃球
- Faker::體育::西洋棋
- Faker::體育::足球
- Faker::體育::登山
- Faker::體育::排球
電視節目
- Faker::電視節目::AquaTeenHungerForce
- Faker::電視節目::Archer
- Faker::電視節目::BigBangTheory
- Faker::電視劇::馬男波傑克
- Faker::電視劇::絕命毒師
- Faker::電視節目::布魯克林九九
- Faker::電視節目::巴菲
- Faker::電視節目::社區
- Faker::電視劇::神秘博士
- Faker::電視節目::DumbAndDumber
- Faker::電視節目::FamilyGuy
- Faker::電視節目::FinalSpace
- Faker::電視劇::老友記
- Faker::電視劇::權力的遊戲
- Faker::電視節目::嘿阿諾德
- Faker::電視節目::老媽的浪漫史
- Faker::電視節目::麥可·斯科特
- Faker::電視節目::NewGirl
- Faker::電視節目::ParksAndRec
- Faker::電視劇::瑞克和莫蒂
- Faker::電視節目::魯保羅
- Faker::電視節目::宋飛正傳
- Faker::電視節目::矽谷
- Faker::電視節目::辛普森一家
- Faker::電視劇::南方公園
- Faker::電視劇::海綿寶寶
- Faker::電視節目::星際迷航
- Faker::電視節目::星際之門
- Faker::電視節目::怪奇物語
- Faker::電視節目::套裝
- Faker::電視節目::超自然
- Faker::電視節目::The Expanse
- Faker::電視劇::新鮮王子妙事多
- Faker::電視節目::TheITCrowd
- Faker::電視節目::TheThickOfIt
- Faker::電視節目::雙峰
- Faker::電視節目::VentureBros
地點
貢獻
注意:我們不接受關於新發電機和區域設置的提案。貢獻指南對這項決定有一些註釋。
查看貢獻文檔,了解有關在電腦上設定儲存庫、開啟錯誤報告、了解程式碼庫以及建立良好拉取請求的說明。
有一個 Discord 頻道可以討論任何有關改進或功能請求的內容。
謝謝貢獻者!
版本控制
Faker 遵循 https://semver.org 中定義的語意版本控制 2.0。
執照
根據 MIT 許可條款,此代碼可免費使用。