Tôi tò mò nếu có ai có kinh nghiệm viết JUnits cho các tệp PDF được tạo trong Java (đặc biệt là bởi iText). Tôi đã tìm kiếm nhanh trên google và tôi không thể tìm thấy bất kỳ điều gì cụ thể. Những gì tôi có thể làm cho đến nay là kiểm tra xem tệp PDF đã được tạo chưa, có số lượng trang nhất định và tài liệu bị đóng. Nhưng tôi không thể xác minh nội dung của tài liệu. Ai đó có thể cung cấp một ví dụ những gì họ đã làm trong quá khứ để đạt được kết quả như vậy? Hoặc tôi hoàn toàn sai và JUnits cho các tệp PDF của tôi có quá mức không? Cảm ơnViết JUnits cho PDF được tạo bởi iText
Trả lời
Cho rằng bạn đang sử dụng Java, tôi đã xem xét số PDFBox (Apache). Những gì bạn đang yêu cầu là khá khó khăn vì PDF được truyền lại của bạn có thể không giống với cú pháp ban đầu của bạn. Bạn có thể cần phải suy nghĩ về roundtripping.
Các tài liệu như PDF có thể mong manh so với so sánh. Nếu bạn thấy rằng một so sánh thất bại nó có thể cho thấy ít dấu hiệu của sự thất bại ở đâu. Một tài liệu PDF có thể cực kỳ phức tạp (cây có nhánh cao). Bạn có thể cần phải tìm kiếm một canonicalization của tài liệu để so sánh chúng (tôi làm điều này cho các tài liệu XML).
Tôi đoán là một bài kiểm tra đầy đủ là quá mức cần thiết và các bài kiểm tra hiện tại của bạn càng tốt càng tốt với chi phí hợp lý.
CẬP NHẬT: Tôi đã kiểm tra PDFBox cho PDDocument.equals (PDDocument) và không có phương thức bằng sâu nào. Điều này cho thấy họ đã không tìm thấy nó đáng giá (nó đòi hỏi đệ quy qua nhiều subnodes). Ngoài ra còn có rất nhiều con số thực sự vì vậy tất cả sẽ được so sánh với một sự khoan dung.
Phương pháp bitmap có thể hoạt động với con người nhưng rất nhạy cảm với các vấn đề số thực - lỗi làm tròn sẽ viết một chút ở một pixel khác. Nó gần như chắc chắn sẽ hoạt động khác với một phiên bản hệ điều hành mới.
- 1. Tạo điểm đến cho tất cả dấu trang trong tệp PDF bằng iText API
- 2. Đọc pdf bằng cách sử dụng iText
- 3. Chữ cái Kirin không hiển thị bằng PDF được tạo bằng iText trong Android
- 4. Xóa các tệp tạm thời được tạo bởi pdf()
- 5. iText để tạo PDF với các ký tự tiếng Trung, nhưng không được hiển thị
- 6. Lưu tiff CCITTFaxDecode (từ trang PDF) bằng iText và Java
- 7. Thêm hình ảnh bên ngoài vào PDF bằng iText
- 8. Cách tạo Pdf theo định hướng Land Scape từ chuỗi html sử dụng Itext 2
- 9. Các quy tắc viết được tạo bởi Apriori
- 10. iText - thêm nội dung vào tập tin PDF
- 11. Viết junits trong Test Driven Development trước khi viết mã thực?
- 12. Cách tạo tệp PDF bằng iText hoặc một số thư viện khác trên android?
- 13. Trích xuất văn bản PDF bằng cách sử dụng iText
- 14. Tạo pdf bằng cách sử dụng itext và đã in đậm trong hàng cụ thể
- 15. Tạo pdf từ tệp html persian bởi ITextSharp
- 16. Cả cảnh quan và chân dung cho pdf với Flying Saucer/iText
- 17. iText - cách thêm trang vào tài liệu được tạo bằng PdfCopy
- 18. Tạo hình thu nhỏ cho PDF trong Java
- 19. Cần biên dạng bảng mỏng trong PDF Được tạo bởi cfDocument
- 20. Nhúng dữ liệu JPG đúng cách trong các tệp PDF được tạo bởi Inkscape
- 21. Tạo PDF từ OpenXml
- 22. chạy junits và cobertura với maven
- 23. iText/iTextSharp cho mục đích thương mại: không được khuyến nghị?
- 24. Xem mã được tạo bởi @synthesize cho getter/setter
- 25. Làm cách nào để chèn hình ảnh dưới văn bản dưới dạng nền pdf bằng iText?
- 26. Tôi có thể cho biết phần mềm nào đã tạo tệp PDF không?
- 27. : đã được khởi tạo liên tục PDF
- 28. Sử dụng iText (iTextSharp) để điền các trường biểu mẫu XFA vào PDF?
- 29. Làm cách nào để trích xuất hình ảnh từ PDF bằng iText theo đúng thứ tự?
- 30. bằng() được tạo bởi Eclipse: getOuterType()?
Bạn có thể đọc lại PDF (với iText's [com.itextpdf.text.pdf.parser.PdfTextExtractor] (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/parser/ PdfTextExtractor.html) hoặc có thể là [com.itextpdf.text.pdf.PdfReader] (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/PdfReader.html)) và sau đó xác minh nội dung. – wchargin
Một cách tiếp cận đơn giản để so sánh các tệp PDF là hiển thị chúng thành bitmap và so sánh các bitmap đó - đây là o.k. miễn là bạn quan tâm đến sự xuất hiện của các tệp PDF và không quan tâm đến siêu dữ liệu, v.v. –