2012-05-31 31 views
6

我有一些代碼使用了我想單元測試的Swing/AWT打印功能。它使用系統本地打印對話框,但是有什麼辦法讓JVM在單元測試期間攔截它並用模擬替換它,以便我可以獲得將要打印的圖像的副本?在Java Swing中進行打印的單元測試

我打印的代碼很簡單,看起來大致是這樣的:

 Printable printable = getPrintable(); 

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

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

我一直在使用FEST我的其他GUI測試,但它似乎並沒有對打印測試任何支持。這甚至有可能做到,還是我需要編寫測試文檔,其中涉及讓QA去檢查他們的打印機?

回答

2

看看我的打印圖書館:http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/print/

您可以創建一個StandardPrint,併爲將要呈現

+1

+1有趣的每一頁的圖像,(幾乎可以忽略)的時間來移動你的goldeggs到的Java6 – mKorbel

+0

我必須看看我是否可以使用預覽方法逃脫。我*認爲*正在進行完整的集成測試,但這似乎是解決我的流程問題的最佳技術解決方案。 –