2010-07-28 8 views
6

No me importa probar las cargas de archivos, pero como tengo validates_attachment_presence, etc. en mi modelo, rspec se queja.Comprobación de la carga de archivos de Paperclip con RSpec

Así que ahora estoy creando mi modelo con estos atributos en la especificación para tratar de hacerlo callar:

@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 
} 

esto no funciona, sin embargo.

encontré esto: http://fr.ivolo.us/posts/mocking-paperclip-with-rspec Así que intentó hacer algo como esto:

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

que no funciona bien. ¿Cómo apaciguo a RSpec?

+1

posible duplicado de archivos [paperclip prueba Unidad con Rspec (rieles)] (http://stackoverflow.com/questions/2256012/unit-testing-paperclip-uploads-with-rspec- rails) –

Respuesta

10

Si el modelo has_attached_file :pic, debe poder simplemente señalar el atributo pic en algún archivo y todo debe ser elegante.

significa algo así como @attr = { :pic => File.open(File.join(Rails.root, 'spec', 'fixtures', 'file.png')) }

+0

Esto solía funcionar para mí, pero no parece funcionar al actualizar a paperclip 3.1.4 desde 2.5.0. –

+0

@ DavidN.Welton ¿qué tipo de error (si hay alguno) obtiene? No tengo mucha experiencia con Paperclip 3. – theIV

+0

Lo que solucionó: 'mymodel.attachedimage = File.open (....)' en lugar de 'attachedimage =" file/location/foo.jpg "' –

Cuestiones relacionadas