FactoryGirl清理代码

时间:2014-10-11 21:18:20

标签: ruby-on-rails factory-bot faker

这是我的Ride工厂:

FactoryGirl.define do
  factory :ride do
    departure_address "#{Faker::Address.street_address}, #{Faker::Address.city} #{Faker::Address.country}"
  end
end

如何清理这个丑陋的代码? "#{Faker::Address.street_address}, #{Faker::Address.city} #{Faker::Address.country}"

我想在test / helpers中创建一个fake_full_address方法并从工厂调用它。怎么做?

1 个答案:

答案 0 :(得分:0)

/ lib 下,您可以放置​​辅助模块:

module MyHelper
  def self.full_address
    "#{Faker::Address.street_address}, #{Faker::Address.city} #{Faker::Address.country}"
  end
end

在您的工厂,您可以帮助我们,包括您的帮助者:

require 'my_helper.rb'

FactoryGirl.define do
  factory :ride do
    departure_address MyHelper.full_address
  end
end

我在我的项目上做了这个并且效果很好,但你也可以检查这些选项......

How to include a module in a factory_girl factory?

https://github.com/thoughtbot/factory_girl/issues/564