我们实现了一个 magento 模块https://github.com/firegento/firegento-pdf/,我计划为该模块编写测试。
问题是:扩展生成pdf。
是否有任何框架或任何测试pdf的工具?如果我可以检查 pdf 中的文本,那就太好了。我不想检查正确的位置。
安迪的想法?
这看起来很有希望,但感觉过大了。http://webcheatsheet.com/php/reading_clean_text_from_pdf.php
我们实现了一个 magento 模块https://github.com/firegento/firegento-pdf/,我计划为该模块编写测试。
问题是:扩展生成pdf。
是否有任何框架或任何测试pdf的工具?如果我可以检查 pdf 中的文本,那就太好了。我不想检查正确的位置。
安迪的想法?
这看起来很有希望,但感觉过大了。http://webcheatsheet.com/php/reading_clean_text_from_pdf.php
我将 PdfBox 用于类似的模块,这是一个基于 Java 的命令行实用程序,可从 PDF 中提取文本并可选择将其转换为 HTML: http: //pdfbox.apache.org/commandline/#extractText
为了在 PHPUnit 测试中使用它,我为相关的 PdfBox 方法编写了一个 PHP 接口:https ://github.com/schmengler/PdfBox
use SGH\PdfBox;
//$pdf = GENERATED_PDF;
$converter = new PdfBox;
$converter->setPathToPdfBox('/usr/bin/pdfbox-app-1.7.0.jar');
$text = $converter->textFromPdfStream($pdf);
也许您可以使用 Inkscape 将其转换为 SVG 并在某些 SVG 节点上进行断言。如果您只想检查文本或一些简单的格式,那就可以了。
$ inkscape -f invoice.pdf --export-plain-svg=thepdf.svg
但是,对于正确的位置,您需要有点模糊。
然而,PDF 源代码可以很简单,可以使用 simple 进行检查strpos()
。
您必须辞职以测试“我们向 Magento 发送了正确的命令”。测试输出 PDF 会导致脆弱性。
模拟 PDF 编写库,并测试您的代码是否正确调用了该库。这具有速度的额外好处,但需要更多的纪律。如果 PDF 输出未通过手动检查,您必须先修复该测试,以保持您的模拟诚实。