Background: I am thinking of trying to introduce the concept of unit tests to my co-workers by creating some for a module I have been working on; the requirements of it recently changed and require some more abstractions/interactions so it seems like a good way to develop a suite of tests that will "prove" it works without having to manually poke around the application.
The issue, however, is that the module relies on unmockable external factors namely PDFs and XSL. Basically I read XML from the database and apply an XSL transformation to it, then convert it to a PDF using a library called ABCPDF. This PDF is then merged with another PDF based on a static template. I know that I can test the XML and make sure the values are correct, but many of the potential bugs and issues are related to the actual display of the finished document - e.g. minutiae like how long text strings are wrapped, where certain HTML areas are located in relation to the document, etc. Is it even possible to test these things (I realize these are probably integration tests or.. the third kind of test whose name I forget [not Acceptance tests, the other kind], and not unit tests) since I can't, to my knowledge, mock out a PDF easily short of creating it then reading it back or creating an HTML string (i.e. transformed XML) and parsing it by hand to check for the presence of certain table cells in relation to other table cells.
In a situation like this should I just focus on unit tests to make sure the information is correct and that I can create the PDF, or merge them, or whatever and resort to manual testing for the actual display issues?