2010-10-29 68 views
8

对于使用单元测试方面,我迟到了派对......试图找出最佳实践及其他。我的问题是,给定一个负责生成PDF(或Doc/Html/Xml /等)的类,我将如何去测试最终的输出文件是否正确?我想出一个基于文本的文件(xml),我可以看到这些字符串是否匹配,但是二进制文件(pdf)又如何呢?我应该检查一下MD5散列吗?我是否应该对此进行测试?如何设计用于生成PDF文档的单元测试?

在此先感谢。

回答

5

我使用pdfbox从生成的PDF中提取文本,并检查它是否支持它应该的数据。这不检查数据是否在正确的位置,但我不会深入pdf测试。你需要思考你想要走多深,越深入你越需要花更多时间修改测试(我从来没有错过文本错误的地方,也许这就是为什么我不测试它)。

另一种方法是使用相同的PDF库(用于编写它)来阅读它,或者如果使用某种框架从模板生成PDF,则可以使用iText等。

1

如果它不起作用会是一个问题吗?如果是,那么是的,你应该测试它。

现在接下来的问题是,一个二进制文件比较实用工作,以比较预期和实际PDF文件?如果是的话,我会使用它。

+0

有点晚了,但我不同意这一点。它应该被测试,但是比较二进制数据是一种闹剧,不应该被用来认真地验证这样的事情。我明白了,它确实有用,但它太不切实际了,它几乎毫无价值。这是一个棘手的想法,几乎没有真正的答案。 – alexc95 2017-06-05 09:51:56