用rspec渲染后检查prawn pdf内容

时间:2017-09-13 20:32:44

标签: ruby-on-rails ruby pdf rspec

我正在尝试测试prawn生成的pdf的内容,我想确保输入的信息来自订单。我在回复中得到了这个,但首先我不确定内容是否完全干净,其次是如何阅读内容?我正在尝试使用pdf-inspector,但我不确定我是以正确的方式进行的。

在我的spec文件中:

get :invoice, params: {id: order.number, order_token: order.guest_token, format: :pdf}, format: :pdf
pdf_doc = response.body
rendered_pdf = pdf_doc.render
text_analysis = PDF::Inspector::Text.analyze(rendered_pdf)
puts text_analysis.strings

rspec结果:

  1) Spree::OrdersController#With the right token should not return an empty pdf
     Failure/Error: rendered_pdf = pdf_doc.render

     NoMethodError:
       undefined method `render' for #<String:0x0056490fd3b7c0>
     # ./spec/controllers/spree/frontend/orders_controller_decorator_spec.rb:43:in `block (3 levels) in <top (required)>'

Finished in 17.42 seconds (files took 8.08 seconds to load)
1 example, 1 failure

和response.body:

"%PDF-1.3\n%\xFF\xFF\xFF\xFF\n1 0 obj\n<< /Creator <feff0050007200610077006e>\n/Producer <feff0050007200610077006e>\n>>\nendobj\n2 0 obj\n<< /Type /Catalog\n/Pages 3 0 R\n>>\nendobj\n3 0 obj\n<< /Type /Pages\n/Count 1\n/Kids [5 0 R]\n>>\nendobj\n4 0 obj\n<< /Length 14202\n>>\nstream\nq\n/DeviceRGB cs\n0.000 0.000 0.000 scn\n\nBT\n519.396 813.274 Td\n/F2.0 12 Tf\n[<46> 80 <41> 40 <4354555245>] TJ\nET\n\n\nq\n134.500 0 0 53.000 76.000 747.000 cm\n/I1 Do\nQ\n\nBT\n108.218 726.384 Td\n/F1.0 12 Tf\n[<4772> 10 <616e647376696e73>] TJ\nET\n\n\nBT\n79.598 712.512 Td\n/F1.0 12 Tf\n[<496d6d657562> 20 <6c652053e96d6170686f7265>] TJ\nET\n\n\nBT\n67.706 698.6399999999999 Td\n/F1.0 12 Tf\n[<31382072> -15 <756520426f696c656175202d204353203730303132>] TJ\nET\n\n\nBT\n64.442 684.7679999999998x00nq\xD2T~\xEFz\xD0\xFF\x00\x18\xFA\x7FK\xE6\xFD'\xB5\xCB\xFA\xC9\x9F\x85\xFA\xD3\x8Bn\xAF\xA8c:\xBC\x1A\x1A\xD7\x90\xDE\xA3S\xFE\xCF\xF6/}\x18\xD9\x1F\xAD\xBA\xCF\xE6\xB2\x7FKM\x98\x99*t\xF5\xBE\xAB\x8D\x9EzI\xDB\xD43M\xB5\xE3\v.\xB1\xB4U\xBD\x98l\xCE\xBE\xF6\xB7\x1F\x16\xCB\x18\xDB\x9F\xBF\xF4_\xA6\xFF\x00\x83\xF4\xEBC\xC3\xFF\x00\xC4\xF7\xD5\x7F\xF8\xFCo\xFC\xF7r\xBA?\xF1D\x7F\xF0\xD9\xFF\x00\xDB&!\xF6\xA3\xF54~]\xA5\xF6\xFF\x00\x92\xF9}_\xDFE\x83\xF5\xBF\xEDyX-~;1\xB1s\xAB\xA8\xB2\xE7\xD8\xE7\x13u\xCCu\xA3\x1A\xBFF\x87\xD4\xD7\xD6\xEA\xF6~\xB7v'\xDA?\x9D\xC7]\"\xF3\xFE\x99\xFF\x00\x8BN\x85\xFF\x00\xA6\xA6\xFF\x00\xD4\xDE\xBD\x01\x10\xC3\x9B\xDA\xB1\xEDmZ\xFF\x00{\xFC'\xFF\xD9\x008BIM\x04!\x00\x00\x00\x00\x00]\x00\x00\x00\x01\x01\x00\x00\x00\x0F\x00A\x00d\x00o\x00b\x00e\x00 \x00P\x00h\x00o\x00t\x00o\x00s\x00h\x00o\x00p\x00\x00\x00\x17\x00A\x00d\x00o\x00b\x00e\x00 \x00P\x00h\x00o\x00t\x00o\x00s\x00h\x00o\x00p\x00 \x00C\x00C\x00 \x002\x000\x001\x007\x00\x00\x00\x01\x008BIM\x04\x06\x00\x00\x00\x00\x00\a........................................................................................................................................................................................................................................1C\x00\x0F\x00\x1A\x00+acspAPPL\x00\x00\x00\x00APPL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\xF6\xD6\x00\x01\x00\x00\x00\x00\xD3-appl\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11desc\x00\x00\x01P\x00\x00\x00bdscm\x00\x00\x01\xB4\x00\x00\x01\xC0cprt\x00\x00\x03t\x00\x00\x00#wtpt\x00\x00\x03\x98\x00\x00\x00\x14rXYZ\x00\x00\x03\xAC\x00\x00\x00\x14gXYZ\x00\x00\x03\xC0\x00\x00\x00\x14bXYZ\x00\x00\x03\xD4\x00\x00\x00\x14rTRC\x00\x00\x03\xE8\x00\x00\b\faarg\x00\x00\v\xF4\x00\x00\x00 vcgt\x00\x00\f\x14\x00\x00\x000ndin\x00\x00\fD\x00\x00\x00>chad\x00\x00\f\x84\x00\x00\x00,mmod\x00\x00\f\xB0\x00\x00\x00(bTRC\x00\x00\x03\xE8\x00\x00\b\fgTRC\x00\x00\x03\xE8\x00\x00\b\faabg\x00\x00\v\xF4\x00\x00\x00 aagg\x00\x00\v\xF4\x00\x00\x00 desc\x00\x00\x00\x00\x00\x00\x00\bDisplay\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00mluc\x00\x00\x00\x00\x00\x00\x00\"\x00\x00\x00\fhrHR\x00\x00\x00\x18\x00\x00\x01\xA8koKR\x00\x00\x00\x18\x00\x00\x01\xA8nbNO\x00\x00\x00\x18\x00\x00\x01\xA8id\x00\x00\x00\x00\x00\x18\x00\x00\x01\xA8huHU\x00\x00\x00\x18\x00\x00\x01\xA8csCZ\x00\x00\x00\x18\x00\x00\x01\xA8daDK\x00\x00\x00\x18\x00\x00\x01\xA8ukUA\x00\x00\x00\x18\x00\x00\x01\xA8ar\x00\x00\x00\x00\x00\x18\x00\x00\x01\xA8itIT\x00\x00\x00\x18\x00\x00\x01\xA8roRO\x00\x00\x00\x18\x00\x00\x01\xA8nlNL\x00\x00\x00\x18\x00\x00\x01\xA8heIL\x00\x00\x00\x18\x00\x00\x01\xA8esES\x00\x00\x00\x18\x00\x00\x01\xA8fiFI\x00\x00\x00\x18\x00\x00\x01\xA8zhTW\x00\x00\x00\x18\x00\x00\x01\xA8viVN\x00\x00\x00\x18\x00\x00\x01\xA8skSK\x00\x00\x00\x18\x00\x00\x01\xA8zhCN\x00\x00\x00\x18\x00\x00\x01\xA8ruRU\x00\x00\x00\x18\x00\x00\x01\xA8frFR\x00\x00\x00\x18\x00\x00\x01\xA8ms\x00\x00\x00\x00\x00\x18\x00\x00\x01\xA8caES\x00\x00\x00\x18\x00\x00\x01\xA8thTH\x00\x00\x00\x18\x00\x00\x01\xA8esXL\x00\x00\x00\x18\x00\x00\x01\xA8deDE\x00\x00\x00\x18\x00\x00\x01\xA8enUS\x00\x00\x00\x18\x00\x00\x01\xA8ptBR\x00\x00\x00\x18\x00\x00\x01\xA8plPL\x00\x00\x00\x18\x00\x00\x01\xA8elGR\x00\x00\x00\x18\x00\x00\x01\xA8svSE\x00\x00\x00\x18\x00\x00\x01\xA8trTR\x00\x00\x00\x18\x00\x00\x01\xA8jaJP\x00\x00\x00\x18\x00\x00\x01\xA8ptPT\x00\x00\x00\x18\x00\x00\x01\xA8\x00L\x00G\x00 \x00U\x00l\x00t\x00r\x00a\x00F\x00i\x00n\x00etext\x00\x00\x\x9D\xDD\xFF\x00'u\xF1\xF5iW\xA3V(\x89ty?\x9B\x97\xFF\x00&\xF96_\x96|\x9B\xF0'\xF4\xDF\x88\xFE\xB3\xF2u\xAA\x85\x9A\x9F\xBDm\xF7\x8D\x9D\xAB\xFD]9\xB4\xA8\x89\xB1\xBE}@\xFE\\|\x9B'\xD1\x8F\x97\xBB\e\xF8\x1F\x88\xFE\xB3\xC5\xCBY\x1Dv^U\xD3\xE3?N~\xAA\xF1\xDE\xECr\xE9\xCC\xA6\xBDb\\\x92\xD3;\xDB\xE6\xED\xAB\xD1\xDF\x94\x87\xD2G\x93\xBE\t\xCF\xA3\xFC\x7F\xB1\xF9<\xD5so[\\#\xBD=\xED\xDF\xDA\xDA\xBC_\xA3\xAE\v\xAF\xB0\xFA\x16\xB8\xFA2\xFA\x1C\xFF\x00%\xF9\x95\xF0\x87\xF0\xFF\x00\x15\xFDw\xE5kU7\xE5W\xCF\xFA\xE1\xDF^/\xEF\xAE\x17i\xFC:\x17\xCD\xB1~\xE3'\xF4U\xEE\xE2z2\xF7>\xE5\xCF(x\xFF\x00\xAA\xF1sU\x1D\xCA\xAF\xC6og}\x97\xBD\xE4\xD9\xEB\xE4[#q\xFC\xC7\xC9<\xDC\xFA\x19y\xDF\xE4>\xD4\xFA\x7F\xC5{>=*\x8D\xBDk\xE8;\xF6m\xDF\xEAm\xFC:V\xBD\xD8\xDF\xA2\xE4\xBE\x8B\xFE\x91\x1F\xD1\x9F\xC0\xFC\x19}?\xF2\xFD\xE7\xE4\xEBUw*\xF7c\x17\xB3\xBE\xB8\xF7\xBF\xD3\xA3:\x8D\x1Dk\xFC$\x0F\xE5\xE3\xE8\xE3\xE9[\xCB\x9E\x1F\xA1|]\\\xDB\x8D\xFDK\xA0\xDD=\x93\xF5_\xF6v>-+X\xF4a\xE7\xA8\x7F,\x9D\x87\xE6'\x9D~\xE0\xBE\x8D\xF1~\xFB\xC5OW\x84\x17\xBBz~\x9F\xFF\x00w\xF1\xF7\\\xBAU\xAFV5\x1C%\x11(\x89DJ\"\xFF\xD9\nendstream\nendobj\n8 0 obj\n<< /Type /Font\n/Subtype /Type1\n/BaseFont /Helvetica\n/Encoding /WinAnsiEncoding\n>>\nendobj\nxref\n0 9\n0000000000 65535 f \n0000000015 00000 n \n0000000109 00000 n \n0000000158 00000 n \n0000000215 00000 n \n0000014470 00000 n \n0000014687 00000 n \n0000014789 00000 n \n0000040507 00000 n \ntrailer\n<< /Size 9\n/Root 2 0 R\n/Info 1 0 R\n>>\nstartxref\n40604\n%%EOF\n"

我故意用(.....)缩短了响应,但是在我的终端中,如上例所示,它在两个方面完全分开。

我有一个内容分为两个,它们之间用空行,看起来像一个pdf文件

0 个答案:

没有答案