RSpec

2010-07-28 23 views
6

ile yüklenen Paperclip dosyasının test edilmesi Dosya yüklemelerini test etmeyi gerçekten umursamıyorum, ancak modelimde validates_attachment_presence vb. Varlığımdan dolayı rspec şikayet ediyor. Bu yüzden şimdi denemek ve onu susturmaya spec bu özelliklere sahip benim model oluşturma ediyorumRSpec

:

@attr = { 
    :name => "value for name", 
    :title => "value for title", 
    :content => "value for content", 
    :pic_file_name => "example.jpg", 
    :pic_content_type => "image/jpg", 
    :pic_file_size => "8192", 
    :pic_updated_at => nil 
} 

Bu da, çalışmaz.

Post.should_receive(:save_attached_files).and_return(true) 

ya çalışmaz: http://fr.ivolo.us/posts/mocking-paperclip-with-rspec Yani böyle bir şey denedim:

bunu buldum. RSpec'i nasıl rahatlatırım?

+1

olası yinelenen http://stackoverflow.com/questions/2256012/unit-testing-paperclip-uploads-with-rspec- raylar –

cevap

10

Model has_attached_file :pic ise, bazı dosyada pic özniteliğini işaret edebilmeniz ve tümünün dandy olması gerekir. @attr = { :pic => File.open(File.join(Rails.root, 'spec', 'fixtures', 'file.png')) } gibi bir şey Anlamı

([RSpec (Raylar) ile test birimi ataç yüklenenler] arasında
+0

Bu benim için çalışıyordu, ancak 2.5.0'den 3.1.4 ataç yükseltmeye çalışırken işe yaramaz gibi görünüyor. –

+0

@ DavidN.Welton Ne tür bir hata (varsa) alırsınız? Paperclip 3 ile çok fazla deneyimim yok. – theIV

+0

Ne yaptıklarını çözdüm: 'mymodel.attachedimage = File.open (....)' yerine 'attachimage =" dosya/konum/foo.jpg "' –