Каков хороший способ хранения изображений для тестирования загрузки и удаления? - PullRequest
0 голосов
/ 17 января 2019

Каков хороший способ хранения изображений для тестирования загрузки и удаления?

  • Я использую Carrierwave для загрузки своих изображений
  • RSpec для моих функций spec

Я написал несколько приспособлений для своих продуктов.

К продукту прикреплены изображения, которые хранятся в папке spec/fixtures/product/attachments/pull_noir_1.jpg

Когда я запускаю удалить спецификацию продукта , изображение удаляется из папки, а затем следующая спецификация не выполняется, поскольку изображение не может быть найдено (Да, оно было удалено). .. public/uploads/product/attachments/683902633/pull_rouge_1.jpg

Как мне установить загрузчик и где хранить изображения?

Вот некоторые из моих приспособлений products.yml

warm_sweat:
  title: Gros pull
  price: 30
  color: Noir
  category: pull
  user: nelly
  attachments: pull_rouge_1.jpg

black_k_l:
  title: Pull Kenzaro
  price: 20
  color: Noir
  category: pull
  user: nelly
  attachments: pull_noir_1.jpg

My attachement_uploader.rb

class AttachmentUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  storage :file

  if Rails.env.production?
    storage :fog
  else
    storage :file
  end

  version :thumb do
     process resize_to_fill: [280, 280]
   end

  def default_url(*args)
     "/images/fallback/" + [version_name, "random.jpg"].compact.join('_')
   end

  def store_dir      
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

РЕДАКТИРОВАТЬ Я добавил #{model.id} Все еще сталкивается с той же проблемой

Сбои

 ActionController::RoutingError:
           No route matches [GET] /uploads/product/attachments/683902633/pull_rouge_1.jpg

Я не думаю, что вам нужны мои спецификации, но не стесняйтесь спрашивать, нужно ли мне обновлять вопрос большим кодом.

1 Ответ

0 голосов
/ 18 января 2019

Мой rails_helper пропустил это:

CarrierWave.configure do |config|
  config.root              = Rails.root.join('spec/fixtures')
  config.cache_only        = true
  config.enable_processing = false
  config.base_path         = "/"
end
...