Como testar o send_data no RSpec? Ou… o que devo testar neste caso?
Qual é a melhor maneira de testar o código a seguir usando o RSpec? E o que devo testar? A ação show abre um arquivo e o transmite. Além disso, se a ação depender de um arquivo existente em algum lugar, posso testá-lo?
<code>def show image_option = params[:image_option] respond_to do |format| format.js format.pdf {open_bmap_file("#{@bmap.bmap_pdf_file}", 'application/pdf', "#{@bmap.bmap_name}.pdf", "pdf", "pdf")} format.png {open_bmap_file("#{@bmap.bmap_png_file}", 'image/png', "#{@bmap.bmap_name}.png", "png", image_option)} end end private def open_bmap_file(filename, application_type, send_filename, format, image_option = nil) filename = "app/assets/images/image_not_available_small.png" unless File.exist? filename path = Bmap.bmaps_pngs_path case image_option when "image" filename = "#{@bmap.bmap_name}.png" when "large_thumbnail" filename = "#{@bmap.bmap_name}_large_thumb.png" when "thumbnail" filename = "#{@bmap.bmap_name}_thumb.png" when "pdf" filename = "#{@bmap.bmap_name}.pdf" path = Bmap.bmaps_pdfs_path else filename = "#{@bmap.bmap_name}.pdf" path = Bmap.bmaps_pdfs_path end begin File.open(path + filename, 'rb') do |f| send_data f.read, :disposition => image_option == "pdf" ? 'attachment' : 'inline', :type => application_type, :filename => send_filename end rescue flash[:error] = 'File not found.' redirect_to root_url end </code>