2010-10-29 13 views
8

Llego tarde a la fiesta con respecto al uso de pruebas unitarias ... tratando de descubrir las mejores prácticas y cosas por el estilo. Mi pregunta es, dada una clase que es responsable de generar un PDF (o Doc/Html/Xml/etc.), ¿Cómo voy a hacer para probar que el archivo final de salida es correcto? Me imagino un archivo de texto (xml), podría ver si las cadenas coinciden, pero ¿qué pasa con un archivo binario (pdf)? ¿Debo verificar con un hash MD5? ¿Debo incluso probar esto?¿Cómo diseñar una prueba unitaria para generar un documento PDF?

Gracias de antemano.

Respuesta

5

Uso pdfbox para extraer texto del PDF generado y verificar si contiene los datos que debería. esto no comprueba si los datos están en el lugar correcto, pero no llego tan lejos con las pruebas en PDF. Necesitas pensar qué tan profundo quieres ir, mientras más profundo pases, más tiempo pasarás arreglando las pruebas después de un cambio (nunca tuve un error de que el texto estuviera en el lugar equivocado y tal vez por eso no lo prueba).

Otra forma sería usar la misma biblioteca de PDF (la usa para escribirla) para leerla o utilizar algo como iText si genera PDF a partir de una plantilla utilizando algún marco.

1

¿Sería un problema si no funcionara? Si es así, entonces sí, debería probarlo.

Ahora, a la siguiente pregunta de cómo funcionaría una utilidad de comparación de archivos binarios para comparar los pdfs esperados y reales? Si es así, lo usaría.

+0

Poco tarde, pero no estoy de acuerdo con esto. Debería probarse, pero comparar datos binarios es una hilaridad que no debería usarse para validar seriamente algo como esto. Lo entiendo, funciona, pero es tan poco práctico que no tiene ningún valor. Es una idea engañosa con casi ninguna respuesta real. – alexc95

Cuestiones relacionadas