在FactoryGirl中生成随机浮点数

时间:2014-06-30 23:38:51

标签: ruby-on-rails ruby random floating-point factory-bot

我需要在我的工厂中生成随机纬度和经度值以进行测试,但使用Random类会给出重复值并使我的测试失败,如何在FactoryGirl中生成随机浮点值?

编辑:相关的代码

factory :location do
  lat rand(-90.0..90.0)
  lng rand(-180.0..180.0)
end

2 个答案:

答案 0 :(得分:4)

不确定为什么会出现重复值,但这可能会有效:

lat = rand(-90.0..90.0)
lng = rand(-180.0..180.0)

您可以seed使用固定值的数字生成器在测试中获得一致的随机数。

在factory_girl:

factory :location do
  lat { rand(-90.0..90.0) }
  lng { rand(-180.0..180.0) }
end

答案 1 :(得分:3)

使用faker gem。

factory :address do
  latitude { Faker::Address.latitude }
  longitude { Faker::Address.longitude }
end