模拟SWT打印机

时间:2016-09-21 09:36:47

标签: java testing swt

我正在编写一些在org.eclipse.swt.printing.Printer上打印的代码。所以第一步是看看我如何测试它,但似乎架构不允许我定义我自己的打印机,因为PrinterDataPrinter都不是它们应该的接口,或者至少是一个抽象的类。

我可能只是模拟打印的GC对象,但由于我使用第三方库来进行实际打印,因此这将非常困难。 (说实话,GC对象不适合单元测试。)

或者我可以在模型打印之前对其进行测试,但测试中仍然缺少一大步。

有没有办法模拟Printer所以我可以完全测试我的代码?

1 个答案:

答案 0 :(得分:1)

我通常只会模仿我拥有的类型(Should you only mock types you own?)。

现在技术上几乎不可能模拟像Printer这样的最终类型,我会写一个打印机抽象。此类仅显示应用程序实际依赖的打印机API。在内部,抽象可以使用Printer的实例来委托。

这将为您提供一个可以安全模拟的类或接口,只有委托代码才会被测试。