factorybot とRspecつかってテストしています。テストの際に1つのモデルで中身のデータが異なるものを複数生成してそのJsonの出力を確認したいのですが。やり方がわからず困っています。
同一データを複数生成する方法はわかったのですが、できれば、factories/モデル名s.rbに仮のデータを複数作成して、そちらを適用したいなと考えているのですが、そのようなことはできるでしょうか?
例えばですが、今のfactories/recruits.rb
rails
1FactoryBot.define do 2 factory :recruit_a, class: Recruit do 3 title "title1" 4 status "default" 5 end 6 factory :recruit_b, class: Recruit do 7 title "title2" 8 status "test" 9 end 10 factory :recruit_c, class: Recruit do 11 title "title3" 12 status "end" 13 end 14end
上記の3つのデータをspecで使うようなことです。
let!(:recruit) { create(:recruit_a) }
let!(:recruit) { create(:recruit_b) }
let!(:recruit) { create(:recruit_c) }
などやってみたものの1つしか適用されませんでした。
以上です。何かアドバイスなどいただけると助かりますよろしくお願いいたしますm(__)m
補足
rails
1require 'rails_helper' 2 3RSpec.describe "User::Offer", type: :request do 4 describe "GET /user_offer" do 5 let!(:user_token) { create(:user_token) } 6 let!(:offer) { create(:offer_b) } 7 let!(:user) {create(:user)} 8 create(:recruit, :a)} 9 let(:res) { JSON.parse(response.body).deep_symbolize_keys } 10 context "正常系" do 11 it "詳細が有効" do 12 get '/api/user/offers/2', params: { 13 token: "user_token" 14 } 15 expect~~省略
rails
1Failure/Error: create(:recruit, :a) 2 `create` is not available on an example group (e.g. a `describe` or `context` block). It is only available from within individual examples (e.g. `it` blocks) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc).
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/05 07:01
2018/12/05 07:12
2018/12/05 07:26
2018/12/05 07:32
2018/12/05 07:37 編集
2018/12/05 07:47
2018/12/05 07:57
2018/12/05 11:24