Rails Faker如何创建自定义方法

时间:2015-03-31 09:45:17

标签: ruby-on-rails rspec faker

我使用rspec和faker进行测试,我想在faker上添加cuestom字段,我已按照此说明操作:

https://github.com/stympy/faker#customization

所以在我的rails_helper.rb中我有这一行:

Faker::Config.locale = :ca

在config / locales文件夹下的ca.yml中,我有:

faker:
    internet:
      usefuldata: [AAAAA,BBBBB]

当我Faker::Internet.usefuldata时,它返回未定义的方法'有用的数据'对于Faker :: Internet:Class。我希望Faker::Internet.usefuldata返回AAAAA或BBBBB。

提前致谢。

1 个答案:

答案 0 :(得分:2)

Faker目前无法支持自定义互联网数据。

Faker仅支持对其定义中包含flexible方法的类进行自定义。例如:Faker::Name班级有the flexible method

要自定义名称,请使用以下格式的语言环境文件(例如fr.yml):

fr:
  faker:
    name:
      region: [South East Queensland, Wide Bay Burnett, Margaret River, Port Pirie, Gippsland, Elizabeth, Barossa]

此处,region是添加到name的自定义字段。

注意:第一个级别为fr,而不是faker

支持自定义的其他类:

  • 法克尔::地址
  • 法克尔::商业
  • 法克尔::公司
  • 法克尔::哈克
  • 法克尔::队

我有forked the repoadded the ability to customize internet fields。您可以通过在Gemfile中正确设置源来尝试,如下所示:

gem 'faker', git: 'https://github.com/prakashmurthy/faker.git'

不太热衷于将其合并到faker gem useful_data对于很多用户来说似乎不是一个足够普遍的数据点。