मैं s3 के लिए फ़ाइलों को अपलोड करने के लिए वाहकवेव का उपयोग कर रेल 3.1 ऐप बना रहा हूं। मैंने कैरियरवेव गिथब रिपोजिटरी के निर्देशों का पालन किया है और अब मैं अपने aws बाल्टी में फ़ाइलों को अपलोड करने में सक्षम हूं। यह परीक्षण है जो मुझे अटक गया। पिछले दो दिनों में मैं अन्य सभी Q & ए का उपयोग करके गुगल रहा हूं और संशोधित कर रहा हूं, लेकिन मुझे अंत में 'माँ' रो रही है। यहाँ मैं क्या कर लिया है:rspec परीक्षण कैरियरवेव - नौसिखिया
/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 => "photo_taker[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
कल्पना/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
मेरी/सार्वजनिक/अपलोड/tmp/छवियों जिसका पीढ़ी मैं परीक्षण कर रहा हूँ की 'छोटे' (और अन्य संस्करणों) के साथ भर हो रही है, वहीं परीक्षण निम्न त्रुटि संदेश के साथ विफल करने के लिए जारी:
1) ImageFileUploader छोटे संस्करण एक परिदृश्य छवि को सुधारने की पैमाने पर वास्तव में 50 50 से पिक्सल
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)>'
मुझे पता होना करने के लिए ऊपर इसका मतलब है कि rspec मेरी परीक्षण बाल्टी नहीं मिल रहा है चाहिए। किसी के पास कोई विचार है कि मैं क्या गलत कर रहा हूं?
किसी भी नई लीड के लिए बहुत आभारी होंगे।
अद्यतन: 10/11/11 फ़ाइल अपलोड काम करता है लेकिन मैं यह पता लगाने में रुक गया हूं कि छवियों को पास करने के लिए परीक्षण कैसे प्राप्त किया जाए। संक्षेप में, मैं प्लेसहोल्डर छवि का उपयोग करूंगा क्योंकि मैं अपने बाकी ऐप को निकाल देता हूं और बाद में लौटता हूं। एक बार जब मैं इसे समझूं तो मैं एक और अपडेट पोस्ट करूंगा। (यदि आपके पास कोई अंतर्दृष्टि है, तो किसी भी विचार को छोड़ दें।)
क्या आपका '@ अपलोडर.स्टोर!' निर्देशिका को संग्रहीत करना चाहिए? मुझे लगता है कि यह एक विशिष्ट फाइल होना चाहिए। – Andrew
@BenU ने मेरा उत्तर आपकी समस्या का समाधान किया? अगर ऐसा है तो कृपया इसे स्वीकार करें :-) –