2012-05-31 2 views
6

J'ai du code qui utilise la fonctionnalité d'impression Swing/AWT que je veux tester à l'unité. Il utilise la boîte de dialogue d'impression natives du système, mais y a-t-il un moyen d'intercepter la JVM et de la remplacer par un simulacre pendant les tests unitaires afin que je puisse obtenir une copie de l'image imprimée?Tests unitaires pour l'impression en Java Swing

Mon code pour l'impression est simple et ressemble à peu près comme ceci:

 Printable printable = getPrintable(); 

    PrinterJob printJob = PrinterJob.getPrinterJob(); 
    printJob.setPrintable(printable); 

    if (printJob.printDialog()) 
    { 
     try 
     { 
      printJob.print(); 
     } 
     catch (PrinterException exception) 
     { 
      ... 
     } 
    } 

Je me sers de mes FEST pour d'autres tests de l'interface graphique, mais il ne semble pas avoir de support pour les tests d'impression. Est-ce possible, ou devrais-je rédiger une documentation de test qui implique de demander à l'assurance qualité de vérifier son imprimante?

Répondre

2

Vérifiez ma bibliothèque d'impression: http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/print/

Vous pouvez créer un StandardPrint et générer des images pour chaque page qui sera rendu

+1

+1 intéressant, (peut assez d'ignorer) le temps de déplacer vos goldeggs à java6 – mKorbel

+0

Je vais devoir voir si je peux m'en sortir en utilisant votre méthode d'aperçu. Je suis supposé * faire un test d'intégration complet, mais cela semble être la meilleure solution technique disponible pour mon problème de processus. –