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
爲什麼這會凍結? (如果我運行模型測試一段時間,它運行緩慢,看起來像它正在運行所有的轉換,我怎麼能把這些出來?)