技術系ブログ

とにかく小ネタで

【Rspec】image_dataを含むモデルのFactoryの作り方

色々試したけども実際にターミナルに出てきたimage_dataをコピペした。

FactoryBot.define do
  factory :post do
    content { "MyString" }
    image_data {"{\"original\":{\"id\":\"da82368d07ad508f3955c85918af11c0\",\"storage\":\"store\",\"metadata\":{\"filename\":null,\"size\":6357,\"mime_type\":\"image/png\"}},\"large\":{\"id\":\"fbee834a18716c8bcdf7d577b5ffd22b.jpg\",\"storage\":\"store\",\"metadata\":{\"filename\":\"image_processing20191011-67690-xsth1h.jpg\",\"size\":1361,\"mime_type\":\"image/jpeg\"}},\"medium\":{\"id\":\"dbe26ddcb28f5fae68aa364fda53af28.jpg\",\"storage\":\"store\",\"metadata\":{\"filename\":\"image_processing20191011-67690-1jr3714.jpg\",\"size\":901,\"mime_type\":\"image/jpeg\"}},\"small\":{\"id\":\"1d2d8908cc977ecfc2eead04b8b9d32a.jpg\",\"storage\":\"store\",\"metadata\":{\"filename\":\"image_processing20191011-67690-1tmg3gv.jpg\",\"size\":436,\"mime_type\":\"image/jpeg\"}}}"}
#上のように
  end
end

テストは

    context "#create" do
        it "投稿" do
            sign_in @user
            post_params = FactoryBot.attributes_for(:post)
            expect{
            post :create, params: {post: post_params}
            }.to change(@user.posts, :count).by(1)
        end
    end

無事に通った。 とりあえずこれで