软件测试pdf是否正确创建

Bow*_*ett 5 php testing laravel

我用 Laravel 编写了一个 REST 应用程序。它接受 Json 有效负载并使用该数据创建格式化的 pdf。

是否可以编写一个测试来检查 pdf 是否已正确生成?

编辑:

理想情况下,我想知道 pdf 没有损坏,即。将在 pdf 阅读器中打开。

另外,最好能以某种方式检查 pdf 的内容。例如...它包含客户姓名吗?

谢谢。

lxg*_*lxg 10

是的,这是可能的,因为相同的 JSON 输入总是生成相同的 PDF。

\n\n

您不会真正检查 PDF 文件。PDF 是一种复杂的格式,基于 PostScript 和一些黑魔法。

\n\n

您可以做的是生成一个 \xe2\x80\x9csample\xe2\x80\x9d PDF 一次,然后编写一个使用相同输入数据生成 PDF 文件的单元测试,然后将其与您的示例进行比较。

\n\n

这看起来像(只是一些示例代码):

\n\n
$myPdf = $pdfGenerator->generatePdf();\n$samplePdf = file_get_contents('/some/example/file.pdf');\n\n// with PHPunit\n$this->assertEquals(0, strcmp($myPdf, $samplePdf));\n
Run Code Online (Sandbox Code Playgroud)\n\n

这有点脏,但它可以完成 \xe2\x80\xa6 的工作,如果 PDF 或 JSON 实现中的某些内容发生更改,单元测试会让您意识到这一点。

\n\n

但重要的是,您的 PDF 生成器不会插入任何 \xe2\x80\x9cdynamic\xe2\x80\x9d 数据,例如日期戳。在这种情况下,PDF 文件显然不可能完全相同。

\n