私は多くの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. Googleモックで定数をモックする方法は?
- 3. Jモックでオブジェクトをモックする方法は?新しいオペレータ
- 4. MoqでActionExecutingContextをモックする方法は?
- 5. PropertyMfigitoでPropertyConfigurator.configure()をモックする方法は?
- 6. Thread.sleep()をPowerMockでモックする方法は?
- 7. pytestでgetenvをモックする方法は?
- 8. Microsoft.Office.Interop.Excel.RangeをMoqでモックする方法は?
- 9. ヘッダーでHttpServletRequestをモックする方法は?
- 10. MockRestServiceServerでRestTempletをモックする方法は?
- 11. Pythonでリストをモックする方法は?
- 12. PythonでBulkWriteExceptionをモックする方法は?
- 13. `createReadStream`でEventEmitterをモックする方法は?
- 14. プロパティをモックする方法
- 15. キャストオブジェクトをモックする方法
- 16. java.util.loggingをモックする方法
- 17. UWP .Net POSプリンタでEpson USB Receiptプリンタが認識されない
- 18. FindResourcesをモックする方法は?
- 19. psycopg2カーソルオブジェクトをモックする方法は?
- 20. DriverManager.getConnection(...)をモックする方法は?
- 21. import express.js supertestをモックする方法は?
- 22. RowMapperをモックする方法は?
- 23. BufferedReaderとPattern.compileをモックする方法は?
- 24. JUnit 4 - ビューをモックする方法は?
- 25. readline.on( 'SIGINT')をモックする方法は?
- 26. java.net.NetworkInterfaceをモックする方法は?
- 27. クラスメソッド(+)をモックする方法は?
- 28. Spock。 java.lang.Classをモックする方法は?
- 29. EntityManagerをモックする方法は?
- 30. readline.createInterface()をモックする方法は?
これは私がそれを行う方法です+1 –