Magento (单元)测试pdf生成

Magento (单元)测试pdf生成,magento,pdf,testing,automated-tests,Magento,Pdf,Testing,Automated Tests,我们实现了一个magento模块,我计划为该模块编写测试 问题是:扩展生成PDF 是否有任何框架或任何东西来测试PDF?如果我可以检查pdf中的文本,那就太好了。我不想检查正确的位置 安迪的想法 这看起来很有希望,但感觉太大了 也许您可以使用Inkscape将其转换为SVG,并在一些SVG节点上进行断言。 如果您只想检查文本或一些简单的格式,就可以这样做 $ inkscape -f invoice.pdf --export-plain-svg=thepdf.svg 不过,要想找到正确的位置,你

我们实现了一个magento模块,我计划为该模块编写测试

问题是:扩展生成PDF

是否有任何框架或任何东西来测试PDF?如果我可以检查pdf中的文本,那就太好了。我不想检查正确的位置

安迪的想法


这看起来很有希望,但感觉太大了

也许您可以使用Inkscape将其转换为SVG,并在一些SVG节点上进行断言。 如果您只想检查文本或一些简单的格式,就可以这样做

$ inkscape -f invoice.pdf --export-plain-svg=thepdf.svg
不过,要想找到正确的位置,你需要有点模糊


尽管如此,PDF源代码可以非常简单,可以使用simple
strpos()检查

您必须让自己去测试“我们向Magento发送了正确的命令”。测试输出PDF将导致脆弱性


模拟PDF编写库,并测试代码是否正确调用了该库。这增加了速度的好处,但需要更多的纪律。如果PDF输出未通过手动检查,则必须首先修复该测试,以保持模拟的真实性。

我将PdfBox用于类似的模块,这是一个基于Java的命令行实用程序,可从PDF中提取文本,并可选择将其转换为HTML:

为了在PHPUnit测试中使用它,我为相关的PdfBox方法编写了一个PHP接口:

例子 进一步阅读:

use SGH\PdfBox;

//$pdf = GENERATED_PDF;
$converter = new PdfBox;
$converter->setPathToPdfBox('/usr/bin/pdfbox-app-1.7.0.jar');
$text = $converter->textFromPdfStream($pdf);