我有一些使用Swing/AWT打印功能的代码需要进行单元测试。它使用系统原生打印对话框,但是在单元测试期间有没有办法让JVM拦截并用模拟替换它,以便我可以获取将要打印的图像副本?
我的打印代码很简单,大致如下:
Printable printable = getPrintable();
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(printable);
if (printJob.printDialog())
{
try
{
printJob.print();
}
catch (PrinterException exception)
{
...
}
}
我一直在使用FEST进行GUI测试,但似乎没有支持打印测试的功能。这可行吗?还是我需要编写测试文档并告诉QA去检查他们的打印机?