私は多くのPDFをプリンタに送るアプリケーションを持っています。ローカルプリンタを表すMockオブジェクトを作成した経験はありますか?.NETでプリンタをモックする方法は?
5
A
答えて
12
あなたがしようとしていることが完全には不明ですが、これが役立つ可能性があります。
プリンタ(または他の外部デバイス)をモックするには、プリンタのすべての呼び出しをインターフェイスの背後にカプセル化する必要があります。
interface IPrinter
{
void Print(PrintData data);
}
他のすべてのコードは、このインターフェイスを使用してプリンタと通信する必要があります。
それからなど
をテストするときに、偽のオブジェクトを簡単にRhino Mocksのようなモックフレームワークを使用して嘲笑することができ、実際のプリンタに話して、このインターフェイスの1つのバージョンを実装し、使用することができます1つの、偽のオブジェクトことができますかMoq、または自分で実装するだけでも構いません。
public class FakePrinter : IPrinter
{
public void Print(PrintData data)
{
// Write to output window or something
}
}
更新:あなたはIoCコンテナを使用している場合、あなたは必要としない、ところで
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ツールを使用してプリンタクラスを注入します。
0
いつでも印刷用にプリンタを一時停止することができます。
ファイルに書き込むプリンタデバイスを使用できます。
あなた自身の印刷デバイスを書くことができます。
0
もう1つ解決策は、LPDアプリケーションを作成するか、単にポート9100を監視して、Windowsプリントキューに9100または515(LPD)で「自身」にデータをルーティングさせることです。
関連する問題
- 1. MQSeriesオブジェクトのMQQueueManagerをMOQ for .NETでモックする方法は?
- 2. MoqでActionExecutingContextをモックする方法は?
- 3. Thread.sleep()をPowerMockでモックする方法は?
- 4. Microsoft.Office.Interop.Excel.RangeをMoqでモックする方法は?
- 5. PythonでBulkWriteExceptionをモックする方法は?
- 6. psycopg2カーソルオブジェクトをモックする方法は?
- 7. FindResourcesをモックする方法は?
- 8. EntityManagerをモックする方法は?
- 9. クラスメソッド(+)をモックする方法は?
- 10. DriverManager.getConnection(...)をモックする方法は?
- 11. ASP.NET 5でUserManagerをモックする方法
- 12. モデルテストケースでモックを作成する方法
- 13. ClojureでJavaオブジェクトをモックする方法
- 14. SilverlightでRhinoMockをモックする方法
- 15. Scalaのモックを使ってシングルトンオブジェクトをモックする方法
- 16. 方法:(IPP)プリンタをシミュレートする
- 17. クラスを取るコンストラクタでオブジェクトをモックする方法は?
- 18. boto3クライアントオブジェクト/コールをモックする方法
- 19. CellSetオブジェクトをモックする方法
- 20. DjangoでRelatedManagerメソッドをモックする方法はありますか?
- 21. Python3でコンストラクタを使ってオブジェクトをモックする方法は?
- 22. Mockで読み取り専用プロパティをモックする方法は?
- 23. NSURLProtocolでAJAX呼び出しをモックする方法は?
- 24. スペッククラスの外でSpockモックを作成する方法は?
- 25. rSpecで配列をモックする方法は?
- 26. Active Directoryでプリンタをプログラムで検索する方法
- 27. のFacesContextモックにする方法 - getRequestParameterMap
- 28. finalクラスを返す静的メソッドをモックする方法は?
- 29. AutoHotKeyでプリンタを選択して印刷する方法
- 30. WPFでプリンタのDPIを取得する方法
これは私がそれを行う方法です+1 –