エビの宝石によって生成されたPDFをレンダリングするメソッドを備えたStudent
モデルがあります。to_pdf
class Student < ActiveRecord::Base
def to_pdf
StudentPdf.new(self.id).render
end
end
このメソッドが PDF を返すことを確認するために、rspec でこれのテストを作成するにはどうすればよいでしょうか?
エビの宝石によって生成されたPDFをレンダリングするメソッドを備えたStudent
モデルがあります。to_pdf
class Student < ActiveRecord::Base
def to_pdf
StudentPdf.new(self.id).render
end
end
このメソッドが PDF を返すことを確認するために、rspec でこれのテストを作成するにはどうすればよいでしょうか?
これらの宝石pdf-readerまたはpdf-inspectorを使用して、レンダリングされたファイルを prawn testsで行ったように検査してみてください。ファイルの MIME タイプを確認するだけの場合は、この gemを使用してテストでファイル拡張子を取得します。
ここのコメントから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