2016-09-21 60 views
0

我正在編寫一些在org.eclipse.swt.printing.Printer上打印的代碼。所以第一步是看我如何測試這個,但看起來架構不允許我定義我自己的打印機,因爲PrinterDataPrinter都不是它們應該的接口,或者至少是一個抽象類。模擬SWT打印機

我可能只是嘲笑GC被打印的對象,但這會很難,因爲我使用第三方庫來進行實際的打印。 (說實話,GC對象不是最好的單元測試。)

或者我可以在打印之前測試模型,但是在測試中仍然缺少一大步。

有沒有辦法模擬Printer所以我可以完全測試我的代碼?

回答

1

我通常只模擬自己的類型(Should you only mock types you own?)。

既然在技術上幾乎不可能嘲笑像Printer這樣的最終類型,我會寫一個打印機抽象。該類只會公開應用程序實際依賴的打印機API。抽象內部可以使用Printer的實例委託給。

這會給您留下一個安全的模擬類別或接口,並且只有授權代碼纔會被測試。