我有一個應用程序發送出許多PDF的打印機。有沒有人有任何經驗創建一個代表本地打印機的Mock對象?如何在.NET中模擬打印機?
5
A
回答
12
不完全確定你想要做什麼,但這可能有幫助。
爲了模擬打印機(或任何其他外部設備),您應該將所有對打印機的調用封裝在一個接口後面,例如,
interface IPrinter
{
void Print(PrintData data);
}
所有其他代碼必須通過此接口與打印機通信。
然後,您可以實現此接口,討論到實際打印機的一個版本,一個假的對象用諷刺的框架像Rhino Mocks或測試時等
假冒的對象可以很容易地嘲笑,你可以使用Moq,或者你可以自己實施一個假的。
public class FakePrinter : IPrinter
{
public void Print(PrintData data)
{
// Write to output window or something
}
}
更新:使用打印機,然後就會是這個樣子
所有類:
public class ClassThatPrints
{
private IPrinter _Printer;
// Constructor used in production
public ClassThatPrints() : this(new RealPrinter())
{
}
// Constructor used when testing
public ClassThatPrints(IPrinter printer)
{
_Printer = printer;
}
public void MethodThatPrints()
{
...
_Printer.Print(printData)
}
}
順便說一句,如果你使用IoC容器,那麼你就不需要第一個構造函數。然後使用IoC工具注入打印機類。
0
您可以隨時暫停打印機進行打印。
您可以使用寫入文件的打印機設備。
而且您可以編寫自己的打印設備。
0
另一種解決方案是自己編寫一個LPD應用程序或者只是監視端口9100,並讓Windows打印隊列通過9100或515(LPD)將數據路由到「自己」。
相關問題
- 1. 如何在C中模擬打印機#
- 2. 如何:模擬(IPP)打印機
- 3. 模擬SWT打印機
- 4. 如何在.NET中打印到空打印機?
- 5. 在打印機模擬python程序中如何計算waittime?
- 6. 在ZPL中模擬打印
- 7. .net pos打印機滾印
- 8. 如何使用不帶打印機的默認打印機(VB Net)打印PDF
- 9. 如何在Linux上模擬USB打印機到LPT?
- 10. mac的pos打印機模擬器
- 11. 如何構建虛擬打印機?
- 12. 如何使用.NET安裝打印機?
- 13. 在模擬器上打印
- 14. 的iOS模擬器打印機錯誤 - 空氣打印
- 15. 在.Net中選擇打印機
- 16. 如何從.NET Compact Framework打印到MZ220打印機?
- 17. 打印慢(模擬打字)
- 18. 在ios中打印:如果打印機連接到mac,是否可以從模擬器打印?
- 19. iOS 4:我如何模擬A4打印機?
- 20. .NET XML漂亮打印機?
- 21. 如何在Dart單元測試中模擬或驗證打印的打印?
- 22. 在MVC中直接打印沒有熱打印機的打印對話框.net
- 23. 如何在.net中設置打印機ACL?
- 24. 打印在.NET
- 25. 如何在SELECTED打印機中打印任何文檔
- 26. 打印到xcode模擬器
- 27. 創建虛擬「粉碎機」打印機
- 28. .NET飛機模擬器
- 29. .net中的網絡打印機監控
- 30. 如何在無頭Chrome中啓用打印介質模擬?
我就是這樣做的+1 +1 – 2009-06-19 17:37:28