Ho un'applicazione che invia molti PDF a una stampante. Qualcuno ha mai avuto esperienza nella creazione di un oggetto Mock che rappresenta una stampante locale?Come simulare una stampante in .NET?
risposta
Non completamente sicuro di ciò che si sta tentando di fare, ma questo potrebbe aiutare.
Per simulare una stampante (o qualsiasi altro dispositivo esterno) è necessario incapsulare tutte le chiamate alla stampante dietro un'interfaccia, ad es.
interface IPrinter
{
void Print(PrintData data);
}
Tutti gli altri codici devono quindi comunicare con la stampante tramite questa interfaccia.
È possibile quindi implementare una versione di questa interfaccia che parla alla stampante vera e propria, e un oggetto falso che è possibile utilizzare durante la prova ecc
L'oggetto falso può essere facilmente deriso utilizzando un quadro di scherno come Rhino Mocks o Moq, oppure puoi semplicemente implementarne uno falso.
public class FakePrinter : IPrinter
{
public void Print(PrintData data)
{
// Write to output window or something
}
}
Aggiornamento:
Tutte le classi che utilizza la stampante sarà quindi simile a questa:
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)
}
}
A proposito, se si utilizza un contenitore CIO, allora non è necessario il primo costruttore. Quindi si iniettano le classi della stampante usando lo strumento IoC.
È sempre possibile mettere in pausa la stampante per la stampa.
È possibile utilizzare un dispositivo stampante che scrive su un file.
E si può scrivere il proprio dispositivo di stampa.
Un'altra soluzione è scrivere un'app LPD o semplicemente monitorare la porta 9100 e disporre di una coda di stampa di Windows che indirizza i dati a "sé" su 9100 o 515 (LPD).
- 1. Come posso installare una stampante usando .NET?
- 2. stampante di impostazione "KeepPrintedDocuments" proprietà in .NET
- 3. Come creare una stampante virtuale in Windows?
- 4. Come scrivere una stampante carina personalizzata
- 5. Come posso sapere se una stampante stamperà su file?
- 6. Come stampare usando una stampante zebra in Android?
- 7. Come simulare tuple e set in C#?
- 8. Come simulare una stampa in una stored procedure MySQL
- 9. Come simulare PreferenceManager in Android?
- 10. come simulare REPEAT() in SQLite
- 11. Come si imposta la stampante predefinita di Windows in C#?
- 12. È possibile ottenere l'icona associata a una stampante installata tramite .Net?
- 13. Interfaccia con una stampante PTouch Brother?
- 14. Come simulare NVL in HQL
- 15. Come simulare NSDate in Swift?
- 16. Come utilizzare Java per stampare su una stampante di rete?
- 17. Come posso simulare una pressione di un tasto in JavaScript?
- 18. Come simulare il conteggio distinto in una vista indicizzata?
- 19. Forza stampante target in Java
- 20. Come simulare l'eccezione OutOfMemory
- 21. Come simulare JSONObject?
- 22. Come si crea una pagina HTML amichevole per la stampante?
- 23. java: come simulare Calendar.getInstance()?
- 24. Come simulare Microsoft.Office.Interop.Excel.Range con Moq?
- 25. Come passare PDF come input alla stampante
- 26. Stampa su una stampante non predefinita in delphi
- 27. Come simulare DriverManager.getConnection (...)?
- 28. VBS - Ottieni stampante predefinita
- 29. Come simulare Time.now?
- 30. Come si ottiene lo stato della stampante?
Ecco come lo farei +1 –