2

エビの宝石によって生成されたPDFをレンダリングするメソッドを備えたStudentモデルがあります。to_pdf

class Student < ActiveRecord::Base
  def to_pdf
    StudentPdf.new(self.id).render
  end
end

このメソッドが PDF を返すことを確認するために、rspec でこれのテストを作成するにはどうすればよいでしょうか?

4

3 に答える 3

0

これらの宝石pdf-readerまたはpdf-inspectorを使用して、レンダリングされたファイルを prawn testsで行ったように検査してみてください。ファイルの MIME タイプを確認するだけの場合は、この gemを使用してテストでファイル拡張子を取得します。

于 2013-07-25T13:41:23.033 に答える
0

ここのコメントからpdfリーダーの宝石とレシピを使用します:http://railscasts.com/episodes/153-pdfs-with-prawn-revised?view=comments

これが私のコードです:require "spec_helper"

describe Report::PerformanceReviewReportPdf do
  let(:user) { create(:user) }
  let(:reviews) { create(:reviews) }
  let(:pdf) { described_class.new(user, [reviews]) }

  it 'renders pdf correctly' do
    reader = PDF::Reader.new(StringIO.new(pdf.build))
    page   = Capybara.string(reader.pages.collect(&:text).join("\n"))

    page.should have_content('Something')
  end
end

Report::PerformanceReviewReportPdf < Prawn::Document
  def initialize
    ......
  end
  def build
    text 'Something'
    render
  end
end
于 2014-01-13T14:42:34.350 に答える