2012-05-16 13 views
5

tengo el siguiente modelo:carga Carrierwave trabaja en la consola rieles, pero no en las especificaciones

class Face < ActiveRecord::Base 
    attr_accessible :face_index, :design, :background 
    belongs_to :template 
    mount_uploader :background, BackgroundUploader 
end 

El BackgroundUploader:

class BackgroundUploader < CarrierWave::Uploader::Base 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 

Cuando inicio la consola rieles que puede crear una cara y guardar una fondo en la misma:

f = Face.create(:face_index => 0) 
f.background = File.open("/path/to/image.jpg") 
f.save! 

que todas las obras, pero cuando trato de moverlo a RSpec estoy un fracaso:

Failures: 

    1) Face A new face 
    Failure/Error: @face.background = File.open(image_path) 
    NoMethodError: 
     undefined method `background_will_change!' for #<Face:0x007ff63d9f7410> 

La especificación:

describe Face do 

    before(:each) do 
    image_path = Rails.root.join('spec/support/images', '02.jpg').to_s 
    @face = FactoryGirl.create(:face) 
    @face.background = File.open(image_path) 
    @face.save! 
    end 

    describe "A new face" do 
    it { should belong_to(:template) } 
    end 

end 

La fábrica:

FactoryGirl.define do  
    factory :face do 
    face_index 0 
    end 
end 

he visto que el error antes, cuando la columna cargador faltaba de la db, pero si mis migraciones son correctos para dev deberían ser correctos para la prueba, ¿no? ¿Debo exigir algo en la especificación para que funcione?

gracias!

Respuesta

5

Doh, la respuesta fue mi último párrafo, que se olvidó de ejecutar

rake db:test:load 

Un buen ejemplo de tomar un descanso y volver a un problema.

+0

¡Gracias! ¡Eso es exactamente lo que necesitaba para obtener muchas especificaciones rotas para que funcionen también! – BenU

Cuestiones relacionadas