在Java Swing中进行打印的单元测试

Jor*_*ley 6 java testing swing

我有一些代码使用我要进行单元测试的Swing/AWT打印功能.它使用系统本机打印对话框,但有没有办法让JVM拦截它并在单元测试期间用模拟替换它,这样我就可以获得要打印的图像的副本?

我的打印代码很简单,看起来大致如下:

     Printable printable = getPrintable();

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

     if (printJob.printDialog())
     {
        try
        {
           printJob.print();
        }
        catch (PrinterException exception)
        {
           ...
        }
     }
Run Code Online (Sandbox Code Playgroud)

我一直在使用FEST进行其他GUI测试,但它似乎没有任何支持打印测试.这是否可能,或者我是否需要编写测试文档,告诉QA去检查他们的打印机?

Con*_*Del 2

查看我的打印库:http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/print/

您可以创建 StandardPrint 并为将呈现的每个页面生成图像