Java (特に iText) で生成された PDF 用の JUnit を作成した経験がある人がいるかどうか知りたいです。Googleで簡単に検索しましたが、具体的なものは見つかりませんでした。これまでにできたことは、PDF が生成され、一定量のページがあり、ドキュメントが閉じられていることを確認することでした。しかし、文書の内容を確認することはできませんでした。そのような結果を達成するために過去に行ったことの例を誰かが提供できますか? または、私は完全に間違っていて、PDF の JUnits はやり過ぎですか? ありがとう
1 に答える
あなたが Java を使用していることを考えると、私はPDFBox (Apache) を見ます。再変換された PDF は元の PDF と構文的に同一ではない可能性があるため、あなたが求めていることは非常に困難です。ラウンドトリップを考える必要があるかもしれません。
PDF などのドキュメントは、比較に関して脆弱な場合があります。比較が失敗したことがわかった場合、失敗がどこにあるのかをほとんど示していない可能性があります。PDF ドキュメントは非常に複雑になる場合があります (高度に分岐したツリー)。それらを比較するために、文書の正規化を探す必要があるかもしれません (私はこれを XML 文書に対して行います)。
私の推測では、完全なテストは過剰であり、現在のテストは妥当なコストで可能な限り優れていると思います。
更新: PDDocument.equals(PDDocument) の PDFBox を確認しましたが、深い equals メソッドはありません。これは、彼らがその価値を認めていないことを示唆しています (多くのサブノードに対する再帰が必要です)。また、多くの実数があるため、これらすべてを許容値と比較する必要があります。
ビットマップ方式は人間には有効かもしれませんが、実数の問題に非常に敏感です。丸め誤差により、別のピクセルにビットが書き込まれます。新しい OS バージョンでは、ほぼ確実に動作が異なります。