Estoy haciendo una aplicación Rails 3.1 usando carrierwave para subir archivos a aws s3. He seguido las instrucciones en el repositorio carrierwave github y ahora puedo subir archivos a mi bandeja de entrada. Es la prueba lo que me atascó. En los últimos dos días he estado buscando en Google y revisando, usando todas las otras Q & que he encontrado pero que finalmente estoy llorando 'mamá'. Esto es lo que tengo:prueba rspec carrierwave - newbie
/app/uploaders/image_file_uploader.rb
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
/config/initializers/carrierwave.rb
if Rails.env.test? or Rails.env.cucumber?
CarrierWave.configure do |config|
config.storage = :file
config.enable_processing = false
end
end
/spec/uploaders/image_file_uploader_spec.rb
require 'spec_helper'
require 'support/fog_helper'
require 'carrierwave/test/matchers'
describe ImageFileUploader do
include CarrierWave::Test::Matchers
before do
ImageFileUploader.enable_processing = true
@user = Factory(:user, :email => "[email protected]")
@uploader = ImageFileUploader.new(@user, Factory(:image))
@uploader.store!(File.open("#{Rails.root}/tmp/uploads/#{Rails.env}/images/"))
end
after do
@uploader.remove!
ImageFileUploader.enable_processing = false
end
context 'the tiny version' do
it "should scale down a landscape image to be exactly 50 by 50 pixels" do
@uploader.tiny.should have_dimensions(50, 50)
end
end
spec/factories.rb
Factory.define :image do |image|
include ActionDispatch::TestProcess
image.date_taken "Sun, 09 Oct 2011"
image.time_taken "2000-01-01 03:41:00 UTC"
image.image_file fixture_file_upload('spec/support/test_images/audi.png', 'image/png')
image.taken_by "John Doe"
image.collection "N/A"
image.comments "Beautiful day!"
image.association :user
end
Mientras mi/public/uploads/tmp/está consiguiendo se llenaron de 'pequeña' (y otras versiones) de las imágenes cuya generación que estoy probando, las pruebas siguen fallar con el siguiente mensaje de error:
1) ImageFileUploader la versión pequeña imagen de un paisaje debería reducir a ser exactamente de 50 por 50 píxeles
Failure/Error: @uploader = ImageFileUploader.new(@user, Factory(:image))
Excon::Errors::NotFound:
Expected(200) <=> Actual(404 Not Found)
request => {:expects=>200}
response => #<Excon::Response:0x0000010569f928 @body="", @headers={}, @status=404>
# ./spec/uploaders/image_file_uploader_spec.rb:11:in `block (2 levels) in <top (required)>'
sé que lo anterior significa que rspec no es encontrar mi cubo de pruebas. ¿Alguien tiene alguna idea sobre lo que estoy haciendo mal?
sería súper agradecido por nuevos clientes potenciales.
ACTUALIZACIÓN: 11/10/11 La carga del archivo funciona pero me he detenido a la hora de descubrir cómo pasar la prueba que implica el paso de las imágenes. En el corto plazo, usaré una imagen de marcador de posición a medida que desarrolle el resto de mi aplicación y vuelva a esto más adelante. Voy a publicar una nueva actualización una vez que resuelva esto. (Sin embargo, deje cualquier idea si tiene alguna idea.)
¿Debería su '@ uploader.store!' Estar almacenando un directorio? Yo pensaría que esto debería ser un archivo específico. – Andrew
@BenU ¿mi respuesta resolvió su problema? Por favor, acéptelo en caso afirmativo :-) –