Rails Faker如何创建自定义方法

Rails Faker how to create custom method

我正在使用 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 时,它 return 是 Faker::Internet:Class 的未定义方法 'usefuldata'。我想要 Faker::Internet.usefuldata return AAAAA 或 BBBBB。

提前致谢。

Faker暂不支持自定义互联网数据。

Faker 仅支持对定义中包含 flexible 方法的 classes 进行自定义。例如: Faker::Name class 有 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

其他class支持自定义的:

  • Faker::地址
  • Faker::商业
  • Faker::公司
  • Faker::黑客
  • Faker::战队

我有forked the repo and added the ability to customize internet fields。您可以通过在 Gemfile 中适当设置源来尝试,如下所示:

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

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