繁体   English   中英

使用iText为生成的PDF创建单元测试

[英]Creating unit tests for generated PDFs using iText

我们使用iText读取输入PDF,然后添加消息并保存输出。

PdfReader reader = new PdfReader(inputFilepath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFilename, true));
PdfContentByte over = stamper.getOverContent(1);
over.beginText();
over.showTextAligned(align, text, x, y, angle);
...
over.endText();
stamper.close();

有没有办法读取单元测试中生成的PDF,然后检查提供的文本是否存在于正确的x,y坐标?

一般来说, 不要测试平台 (或者,在这种情况下,测试您正在使用的第三方库。)而是测试您是否正确地与它进行了交互。

在这种情况下,这意味着假设showTextAligned()将做正确的事情,只要传入正确的坐标。然后我将专注于测试它。

这可能意味着我需要隐藏与接口后面的PDF类的所有交互,并且我将该接口的模拟传递给计算代码,使用它来验证是否传递了正确的值给出样本输入。

作为快捷方式,您可以使用PdfReader.getPageContent(int pageNumber)测试特定页面中PDF中的文本顺序。

这不是理想的,但它可以是一个穷人的定位测试,假设您从左到右和从上到下打印文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM