Domanda

Utilizzo un lettore di flussi per importare alcuni dati e al momento codifico un piccolo file di esempio nel test per svolgere il lavoro.

È sensato utilizzare Mock Objects con questo e come?

È stato utile?

Soluzione

Non vedo alcun punto per deridere StreamReader a meno che tu non stia creando una classe derivata da StreamReader.Se devi fornire input di test tramite StreamReader, leggi semplicemente alcuni dati predefiniti da qualsiasi fonte adatta.

Altri suggerimenti

StreamReader è una classe concreta, quindi molti sistemi di derisione non ti permetteranno di deriderla.TipoMock Isolatore lo farà, comunque.

Potresti scoprire di volerlo prendere in giro se hai bisogno di forzare gli errori a venire dal lettore, piuttosto che semplicemente fornire dati alla tua classe sotto test.Se non hai bisogno di questa funzionalità, potresti essere altrettanto avanti costruendo uno StreamReader da qualche altro Stream, come a MemoryStream - in questo modo non è necessario andare su disco per i tuoi dati.

Durante il test del codice che dipende da stream, streamreader e streamwriter, di solito utilizzo l'oggetto memorystream per il test.Non è necessaria alcuna struttura beffarda qui.

È possibile utilizzare un metodo factory per restituire un TextReader che potrebbe essere l'oggetto fittizio o un vero StreamReader.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top