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 许可条款,此代码可免费使用。