リストを含むレスポンスオブジェクトのファクトリを持っているので、そのリストのファクトリもありますが、build_listを作るたびに動的リストを取得しようとしていますコール。世界のrspec factorygirl変数リストのファクトリを構築する
現在の状態は以下の通りです:
次のようになりますAPI呼び出しと応答。コールの
pry(main)> get_customer('12345').class
=> Com::ListResult
pry(main)> get_customer('12345').c_list.class
=> Array
pry(main)> get_customer('12345').c_list[0].class
=> Com::Customer`
出力:
pry(main)> get_customer('12345')
=> #<Com::ListResult:0xHEX
@c_list=
[#<Com::Customer:0xHEX
@account_id="12345",
@email="[email protected]">]>
私は工場を作成していると私は一度だけget_customer
コールを作りたい場合は、それが正常に動作します。 ここに工場を設置しているか:RSpecので
factory :customer_each, class: Com::Customer do
account_id "12345"
email "[email protected]"
end
factory :customer_list_result, class: Com::ListResult do
customer_list FactoryGirl.build_list(:customer_each, 1)
end
、私は私のモック結果を取得するには、以下があります。
allow(subject).to receive(:get_customer).and_return(build(:customer_list_result))
私はモックコールを行うたびに別のリストを取得しようとしています。 account_idが11111、22222などと予想されているようなシーケンスを試しましたが、私は常に11111を返します。変数account_idだけが必要なのでメールは問題になりません。
factory :customer_bulk, class: Com::Customer do
sequence(:account_id) {|n| "#{n}"*5}
email "[email protected]"
end
factory :customer_list_result, class: Com::ListResult do
customer_list FactoryGirl.build_list(:customer_bulk, 1)
end
'customer_list {FactoryGirl.build_list(:customer_bulk、1)}試し'。中括弧はFactoryGirlに内部のものを再評価させます。たとえば、乱数を取得するには、 'attribute rand(0..10)'の代わりに 'attribute {rand(0..10)}'を使用します。 – moveson
これはうまくいきませんでした – skd