如何在FactoryGirl中为Ruby on Rails生成随机浮点数?

2026-04-11 15:421阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计282个文字,预计阅读时间需要2分钟。

如何在FactoryGirl中为Ruby on Rails生成随机浮点数?

为了在FactoryGirl中生成随机的浮点数,我们可以使用`Faker`库中的`Faker::Number`类。以下是一个简单的例子,展示如何在FactoryGirl中为位置生成随机的纬度值:

rubyFactoryBot.define do factory :location do lat { Faker::Number.between(from: -90.0, to: 90.0).round(5) } long { Faker::Number.between(from: -180.0, to: 180.0).round(5) } endend

这段代码定义了一个`location`工厂,它会为每个实例随机生成一个纬度值(`lat`)和经度值(`long`)。使用`Faker::Number.between`方法可以生成指定范围内的随机浮点数,并通过`round`方法指定小数点后保留的位数。这样,我们就能生成不重复的随机浮点数,同时避免了使用`Random`类可能带来的重复值问题。

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

编辑:相关的一段代码

factory :location do lat rand(-90.0..90.0) lng rand(-180.0..180.0) end 使用 faker宝石.

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

如何在FactoryGirl中为Ruby on Rails生成随机浮点数?

本文共计282个文字,预计阅读时间需要2分钟。

如何在FactoryGirl中为Ruby on Rails生成随机浮点数?

为了在FactoryGirl中生成随机的浮点数,我们可以使用`Faker`库中的`Faker::Number`类。以下是一个简单的例子,展示如何在FactoryGirl中为位置生成随机的纬度值:

rubyFactoryBot.define do factory :location do lat { Faker::Number.between(from: -90.0, to: 90.0).round(5) } long { Faker::Number.between(from: -180.0, to: 180.0).round(5) } endend

这段代码定义了一个`location`工厂,它会为每个实例随机生成一个纬度值(`lat`)和经度值(`long`)。使用`Faker::Number.between`方法可以生成指定范围内的随机浮点数,并通过`round`方法指定小数点后保留的位数。这样,我们就能生成不重复的随机浮点数,同时避免了使用`Random`类可能带来的重复值问题。

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

编辑:相关的一段代码

factory :location do lat rand(-90.0..90.0) lng rand(-180.0..180.0) end 使用 faker宝石.

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

如何在FactoryGirl中为Ruby on Rails生成随机浮点数?