【问题标题】:FactoryGirl with Refile gemFactoryGirl 与 Refile gem
【发布时间】:2015-02-17 15:09:57
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过仅在独立规范中使用工厂?这是您发布的一个相当高级别的错误...
  • 请贴出工厂目标类的代码。

标签: ruby-on-rails ruby factory-bot refile


【解决方案1】:

请勿手动设置徽标 ID。尝试这样的事情。此外,为了加快测试速度,请使用轻量级文件而不是真实文件,例如 StringIO

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

    logo {
      StringIO.new('hello')
    }
  end
end

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多