Я хочу проверить загрузку файла в рельсы, но не знаю, как это сделать.
Вот код контроллера:
def uploadLicense
    #Create the license object
    @license = License.create(params[:license]) 
    #Get Session ID
    sessid = session[:session_id]
    puts "\n\nSession_id:\n#{sessid}\n"
    #Generate a random string
    chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
    newpass = ""
    1.upto(5) { |i| newpass << chars[rand(chars.size-1)] }
    #Get the original file name
    upload=params[:upload]
    name =  upload['datafile'].original_filename 
    @license.format = File.extname(name)
    #calculate license ID and location
    @license.location = './public/licenses/' + sessid + newpass + name 
    #Save the license file
    #Fileupload.save(params[:upload], @license.location) 
    File.open(@license.location, "wb") { |f| f.write(upload['datafile'].read) }
     #Set license ID
    @license.license_id = sessid + newpass
    #Save the license
    @license.save
    redirect_to :action => 'show', :id => @license.id 
end
Я пробовал эту спецификацию, но она не работает:
it "can upload a license and download a license" do
    file = File.new(Rails.root + 'app/controllers/lic.xml')
    license = HashWithIndifferentAccess.new
    license[:datafile] = file
    info = {:id => 4}
    post :uploadLicense, {:license => info, :upload => license}
end
Как я могу имитировать загрузку файла, используя rspec?
