为什么Faker的方法在几个模块中?

时间:2014-06-27 18:13:57

标签: ruby faker

我正在看这个宝石: https://github.com/stympy/faker

我使用它非常多,而且非常好,但我不明白为什么它的所有方法都被组织成模块:

Faker::Code.isbn #=> "759021701-8"
Faker::Address.longitude #=> "-156.65548382095133"
Faker::Bitcoin.address #=> "1HUoGjmgChmnxxYhz87YytV4gVjfPaExmh"

我必须在我的工厂里这样做:

factory :person, class: Person do
    name { Faker::Lorem.word }
    account { Faker::Bitcoin.address } 
    address { Faker::Address.longitude }
    favourite_book { Faker::Code.isbn }
end

我可以将所有模块都包含在我的测试套件中,所以我只需要这样做:

factory :person, class: Person do
    name { word }
    account { address } 
    address { longitude }
    favourite_book { isbn }
end

我正在使用rspec:

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
  # doesn't work: config.include Faker
end

为什么他们不愿意将他们的方法分成不同的方法?为了加快速度?除非你有一个非常复杂的项目,否则这个数字可以忽略不计?不是更好的宝石会让你做BetterFaker.wordBetterFaker.address等吗?更容易记住:)

1 个答案:

答案 0 :(得分:0)

我愿意冒险,宝石的作者喜欢以逻辑方式组织他们的文件,并保持在不同位置具有不同范围的方法。