rspec carrierwave应具有_维度始终失败:未调整thumb的大小

rspec carrierwave应具有_维度始终失败:未调整thumb的大小,rspec,ruby-on-rails-3,carrierwave,minimagick,Rspec,Ruby On Rails 3,Carrierwave,Minimagick,我已经设置了carrierwave,它可以很好地处理我的图像。我在一个子文件夹中很好地调整了thumb版本的大小。从我的前端(HTML)和我的rails控制台。我使用MiniMagic 但在我的rspec中,拇指测试总是失败 describe 'processed images' do before(:each) do AttachmentUploader.enable_processing = true AttachmentUploader.enable_processin

我已经设置了carrierwave,它可以很好地处理我的图像。我在一个子文件夹中很好地调整了thumb版本的大小。从我的前端(HTML)和我的
rails控制台
。我使用MiniMagic

但在我的rspec中,拇指测试总是失败

describe 'processed images' do
  before(:each) do
    AttachmentUploader.enable_processing = true
    AttachmentUploader.enable_processing = true
    @uploader = AttachmentUploader.new(@post, :image)
    @uploader.store!(File.open(@file))
  end

  after(:each) do
    @uploader.remove!
    AttachmentUploader.enable_processing = false
  end

  describe 'the thumb version' do
    it "should scale down ane image to be exactly 50 by 50 pixels" do
      @uploader.recreate_versions!
      @uploader.thumb.should have_dimensions(50, 50)
    end
  end
@file
是在Fixture中找到的文件。已找到并附上(其他测试通过)。如果我把这行注释掉
@uploader.remove
,它将文件保留在例如
../public/uploads/post/image/thumb\u fig.png
中。 但是,该文件没有调整大小。当通过rails控制台调用相同的序列时,它的大小调整得很好


我的规格有什么遗漏吗?我需要设置一个特殊的标志吗?强制运行某个方法?

这次聚会有点晚,但我自己也在做类似的事情。据我所知,您的测试看起来不错,尽管我相信@uploader.recreate\u版本!这是不必要的。否则,请检查以确保在Uploader类中确实有对process的调用,并且
在测试中包括CarrierWave::Test::Matchers
确保已在
config/initializers/CarrierWave.rb
中启用对CarrierWave的处理

应改为:

config.enable_processing = true

这将减慢所有测试的速度,最好让上传程序在需要的地方处理测试中的文件,而不是在任何地方。