次のように 3 つのスタブ モデルを作成したいと思います。
@first_user, @second_user, @third_user = stub_model(User), stub_model(User), stub_model(User)
これは機能しますが、このことの右側を行うためのより簡潔な方法があるはずであり、私にはそれがよくわかりません。
これらはすべてスタブ化されたユーザーですが、3 つの変数は異なるスタブ モデルを参照する必要があることに注意してください。
次のように 3 つのスタブ モデルを作成したいと思います。
@first_user, @second_user, @third_user = stub_model(User), stub_model(User), stub_model(User)
これは機能しますが、このことの右側を行うためのより簡潔な方法があるはずであり、私にはそれがよくわかりません。
これらはすべてスタブ化されたユーザーですが、3 つの変数は異なるスタブ モデルを参照する必要があることに注意してください。
これを試して:
@first_user, @second_user, @third_user = 3.times.map { stub_model(User) }
これは 3 回ループし、結果をユーザーの配列にマップし、その後展開して ivar に割り当てます。
あなたが試すことができます:
@first_user, @second_user, @third_user = Array.new(3){ stub_model(User) }
サンプル例:
Array.new(3){"foo"}.map(&:object_id)
# => [77834250, 77834230, 77834220]
Array.new(3){"12"}.map(&:object_id)
# => [77832800, 77832780, 77832770]
Array.new(3){{:a => 12 }}.map(&:object_id)
# => [77815300, 77815290, 77815270]