在我的CarrierWave上传工具上为我的"auto_orient“实现编写RSpec测试时遇到了麻烦。我也没有在网上找到太多关于这件事的爱。
我知道操纵方法将由gem指定,但我只想用RSpec验证我的ImageUploader是否正确地实现了它。
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
...
version :tile do
process :auto_orient
end
# Fix images being uploaded the wrong orientation
def auto_orient
manipulate! do |img|
img = img.auto_orient
end
end
let(:uploader) { ImageUploader.new(profile, :avatar) }
before do
ImageUploader.enable_processing = true
File.open(File.join(Rails.root, '/spec/support/images/logo.png')) { |f| uploader.store!(f) }
end
after do
ImageUploader.enable_processing = false
uploader.remove!
end
xit 'runs auto_orient on the image' do
# ???
end谢谢
发布于 2018-04-07 01:51:37
我不是100%确定如何在MiniMagick中做到这一点,但这里是我如何使用RMagick解决这个问题的,如果这有帮助的话。我想应该是一种类似的方法。
uploader.cache_stored_file!
# For minimagick, you would probably use MiniMagick::Image::read
mg = ::Magick::Image::read(uploader.file.file).first
# Not sure if minimagick has an "orient" attribute, might try reading the data using something from here instead: https://github.com/probablycorey/mini_magick/blob/master/lib/mini_magick.rb#L204
expect(mg.orientation.to_i).to eq(1)https://stackoverflow.com/questions/49074167
复制相似问题