我有一些代码使用我想要单元测试的 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 去检查他们的打印机?