2010-07-10 70 views
6

我在我的应用中使用回形针将图像附加到它的图片模型。用回形针悬挂的Rspec测试

型号:

class Picture < ActiveRecord::Base 
    has_attached_file :image, :default_url => "/system/:attachment/missing.png", :styles => { :small => "100x100#", :medium => "460x460>", :large => "1024x1024>" } 

    validates_attachment_presence :image 
    validates_attachment_content_type :image, :content_type => [/image\/(x-)?png/i, /image\/(p)?jpeg/i] 
    validates_attachment_size :image, :less_than => 5.megabytes 

    validates_presence_of :name 
    validates_format_of :name, :with => /^[a-z0-9_\[email protected]#%&()' ]+$/i 
end 

当我运行我的测试中,他们挂在这部分测试中在日志中:

Processing PagesController#index (for 0.0.0.0 at 2010-07-10 11:29:54) [GET] 
    Parameters: {"action"=>"index", "controller"=>"pages"} 
    Picture Load (0.2ms) SELECT * FROM "pictures" LIMIT 1 
Rendering template within layouts/application 
Rendering pages/index 
Completed in 2ms (View: 0, DB: 0) | 200 OK [http://test.host/index] 
[paperclip] identify '-format' '%wx%h' '/var/folders/cD/cDCiDnTlH5ehwTjJq1pxYE+++TI/-Tmp-/stream,6515,0.txt[0]' 2>/dev/null 

我的页面控制器是这样的:

class PagesController < ApplicationController 
    def index 
    @picture = Picture.first ? Picture.first : Picture.new 
    end 
end 

控制器的测试如下所示:

describe PagesController do 
    describe "GET 'index'" do 
    before(:each) do 
     get :index 
    end 

    it "should be successful" do 
     response.should be_success 
    end 

    it "should assign picture" do 
     assigns[:picture].should_not be_nil 
    end 

    it "should assign a valid picture" do 
     assigns[:picture].class.should == Picture 
    end 
    end 
end 

我的测试也挂运行rake spec:models时,它只是显示在日志中

[paperclip] identify '-format' '%wx%h' '/var/folders/cD/cDCiDnTlH5ehwTjJq1pxYE+++TI/-Tmp-/stream,6515,0.txt[0]' 2>/dev/null 

线。我的模型测试看起来像:

describe Picture do 
    it { should have_attached_file(:image) } 
    it { should validate_attachment_presence(:image) } 
    it { 
    should validate_attachment_content_type(:image). 
    allowing('image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg'). 
    rejecting('text/plain', 'text/xml', 'image/tiff') 
    } 
    it { should validate_attachment_size(:image).less_than(5.megabytes) } 

    it { should validate_presence_of(:name) } 
    ["Client's website", "This is a great site!", "my_awes0me-s!te"].each do |phrase| 
    it { should allow_value(phrase).for(:name) } 
    end 
    ["Client's web$ite", "This is a great^ site!", "my_awes;0me-s!te"].each do |phrase| 
    it { should_not allow_value(phrase).for(:name) } 
    end 

    context "is new" do 
    it "should have a default missing image" do 
     picture = Picture.new 
     picture.image.url.should == "/system/images/missing.png" 
    end 
    end 
end 

为什么这会冻结? (如果我运行模型测试一段时间,它运行缓慢,看起来像它正在运行所有的转换,我怎么能把这些出来?)

回答

1

我有与红宝石1.8.7相同的问题 - 但没有挂在红宝石1.9.2

link解决了我的问题。