Kyl*_*cot 2 ruby testing rspec ruby-on-rails
我有一个Student模型w/a to_pdf方法,它呈现由prawn gem 生成的PDF .
class Student < ActiveRecord::Base
def to_pdf
StudentPdf.new(self.id).render
end
end
Run Code Online (Sandbox Code Playgroud)
我将如何在rspec中为此编写测试以确保此方法返回PDF?
任何PDF文档都以特殊字节序列(称为魔术字节或幻数)%PDF(以十六进制表示法为25 50 44 46 )开头,以识别它们.
require 'prawn'
Prawn::Document.new.render[0,4]
# => "%PDF"
Run Code Online (Sandbox Code Playgroud)
因此,如果您只是想确保返回的字符串是PDF文档而您不关心其内容,则可以检查结果魔术字节,例如:
it "must be a PDF" do
expect(Student.new.to_pdf[0,4]).to eq('%PDF')
end
Run Code Online (Sandbox Code Playgroud)