簡體   English   中英

如何在.NET中打印到空打印機?

[英]How to print to a null printer in .NET?

我需要為打印文檔的方法編寫單元測試。 有沒有一種簡單的方法將輸出發送到Windows等效的/ dev / null? 我猜測讓我們的構建服務器在每次簽入時打印文檔都會很快變得昂貴。 ;)

理想情況下,這可以在我們的構建服務器(沒有默認打印機)和我們的開發機器(這樣做)上工作,所以我不想更改默認打印機。

感謝所有精彩的答案,無疑將遵循這個引人入勝的問題。

我這樣做是通過創建一個打印到NUL設備的Windows打印機。 雖然Windows版本之間的細節略有不同,但這非常簡單:只需創建本地打印機並指定NUL作為本地端口,將“Generic”指定為制造商,將“Generic / Text Only”指定為打印機型號。

您應該使用模擬框架來模擬print方法,以便它永遠不會被實際執行。

查看TypeMock或RhinoMocks可以幫助您完成此任務。

這是使用TypeMock的外觀:

Mock mock = MockManager.Mock<PrintManager>();
mock.ExpectCall("Print");

然后,您將在測試中執行代碼,在其中調用此方法。 然后,這將攔截打印調用,文檔將不會發送到打印機,但您仍然可以在打印時單元測試業務邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM