我有一个Student
带有方法的模型,它呈现由虾gemto_pdf
生成的 PDF 。
class Student < ActiveRecord::Base
def to_pdf
StudentPdf.new(self.id).render
end
end
我将如何在 rspec 中为此编写测试以确保此方法返回 PDF?
我有一个Student
带有方法的模型,它呈现由虾gemto_pdf
生成的 PDF 。
class Student < ActiveRecord::Base
def to_pdf
StudentPdf.new(self.id).render
end
end
我将如何在 rspec 中为此编写测试以确保此方法返回 PDF?
我在这里使用评论中的 pdf-reader gem 和配方:http ://railscasts.com/episodes/153-pdfs-with-prawn-revised?view=comments
这是我的代码:需要“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
尝试使用这些 gem pdf-reader或pdf-inspector来检查渲染文件,就像在对虾测试中所做的那样。如果您只想检查文件的 mime 类型,请使用此 gem在测试中获取文件扩展名。