2

アプリケーションでファイルのアップロードを処理するために refile gem を選択します。FactoryGirl での使用に問題があります。私の工場では、次のようなものがあります。

include ActionDispatch::TestProcess
FactoryGirl.define do
  factory :company do
    sequence(:name)  { |n| "Company #{n}" }
    logo_id { fixture_file_upload(Rails.root.to_s + "/spec/fixtures/images/1x1.gif") }
  end
end

いくつかの機能仕様を実行すると、次のエラーが返されます。

  5) Company destroying destroys company
     Failure/Error: visit companies_path
     ActionView::Template::Error:
       Refile::InvalidID

編集:このエラーは、ビュー テンプレートの次の行が原因で発生します:

  %td= image_tag attachment_url(company, :logo, :fill, 50, 50)
4

1 に答える 1

1

ロゴ ID を手動で設定しないでください。このようなことを試してください。また、テストを高速化するには、実際のファイルの代わりに軽量のものを使用しますStringIO

FactoryGirl.define do
  factory :company do
    sequence(:name) { |n| "Company #{n}" }

    logo {
      StringIO.new('hello')
    }
  end
end
于 2015-09-23T12:30:05.327 に答える