2010-07-10 36 views
6

Uygulamamda görüntü atamak için Paperclip kullanan bir Picture modelim var.Paperclip ile asılı Rspec testleri

modeli:

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 

Onlar günlüğüne testin bu kısmında asmak benim testler:

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 

Benim Sayfalar kontrolör şuna benzer:

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

Denetleyici testi şu şekildedir:

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 

Benim testler de rake spec:models çalıştırırken sadece günlüğüne

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

hattını gösterir asılı. Model testim şu gibi görünüyor:

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 

Bu neden donuyor? (Bir süre için model testlerini çalıştırırsam yavaşça hareket eder, tüm dönüşümleri çalıştırıyor gibi görünüyor, bunları nasıl ekleyebilirim?)

cevap

1

Ruby 1.8.7 ile aynı sorunu yaşıyorum - ama asılı değil ruby 1.9.2

Bu link benim için sorunu çözmektedir.