FactoryGirl with Refile gem



我选择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)

不要手动设置徽标id。试试这样的东西。此外,为了加快测试速度,可以使用轻量级的文件,而不是像StringIO这样的真实文件。

FactoryGirl.define do
  factory :company do
    sequence(:name) { |n| "Company #{n}" }
    logo {
      StringIO.new('hello')
    }
  end
end

最新更新