16

FactoryGirl が 0 から 10 までの乱数を定義することは可能ですか?

    factory :rating do
       ranking 1 #random number?
       recipe
    end

生成されるランキング番号が 0 ~ 10 のランダムな値になるようにしたいと思います。

異なる数値で評価を生成したいのですが、rspec で明示的に定義したくありません。これは、評価番号から平均およびその他の統計を表示するために使用されます。例: 10 の数、0 の数、平均など。

4

2 に答える 2

21

バージョン 4.4 の時点で、次のように動作します...

factory :rating do
   ranking {rand(1..10)}
   recipe
end

ランダム化のわずかに異なる使用法については、次のとおりです。

FactoryGirl.define do
  factory :plan do
    name {["Free", "Standard", "Enterprise"].sample}
    price {Faker::numerify('$##')}
  end
end

いくつかのインスタンスを作成すると、名前のランダム化と価格のランダム化を確認できます。

2.0.0-p247 :010 > 4.times.each {FactoryGirl.create(:plan)}
2.0.0-p247 :011 > ap Plan.to_list
[
    [0] [
        [0] "Free: $48",
        [1] BSON::ObjectId('549f6da466e76c8f5300000e')
    ],
    [1] [
        [0] "Standard: $69",
        [1] BSON::ObjectId('549f6da466e76c8f5300000f')
    ],
    [2] [
        [0] "Enterprise: $52",
        [1] BSON::ObjectId('549f6da466e76c8f53000010')
    ],
    [3] [
        [0] "Free: $84",
        [1] BSON::ObjectId('549f6da466e76c8f53000011')
    ]
]
于 2014-12-28T02:48:37.833 に答える