Di seguito è riportato il mio codice di test per il caricamento del file.fixture_file_upload ha {file} inesistente errore
describe "file process" do
before(:each) do
# debugger
@file = fixture_file_upload('test.csv', 'text/csv')
end
it "should be able to upload file" do
post :upload_csv, :upload => @file
response.should be_success
end
end
Tuttavia, quando si esegue RSpec spec, mi ha prodotto l'errore sotto
Failure/Error: @file = fixture_file_upload('test.csv', 'text/csv')
RuntimeError:
test.csv file does not exist
# ./spec/controllers/quotation_controller_spec.rb:29:in `block (3 levels) in <top (required)>'
Googled un sacco di posti, ma ancora non riuscivo a scoprire che cosa è la ragione dietro di esso. Qualche idea?
Trovato una soluzione da SO [http://stackoverflow.com/questions/3966263/attachment-fu-testing-in-rails-3](http:// stackoverflow.com/questions/3966263/attachment-fu-testing-in-rails-3). A quanto pare, devo sostituire fixture_file_upload con questa riga '@file = Rack :: Test :: UploadedFile.new (Rails.root.join ('spec/fixtures/test.csv'), 'text/csv')' – hanchee
fixture_file_upload non funziona con Rails 3.1? – hanchee
Ho iniziato a vederlo dopo l'aggiornamento a 3.2 – plainjimbo