Simulation de l'entrée de fichier dans les tests unitaires .NET avec des flux de chaînes
Les tests unitaires nécessitent souvent de simuler une entrée de fichier. Ceci peut être réalisé efficacement dans .NET en créant des flux directement à partir de chaînes. Voici une méthode concise :
<code class="language-csharp">public static Stream CreateStreamFromString(string inputString) { var memoryStream = new MemoryStream(); var streamWriter = new StreamWriter(memoryStream); streamWriter.Write(inputString); streamWriter.Flush(); memoryStream.Position = 0; return memoryStream; }</code>
Application pratique :
Cette méthode simplifie la configuration du test :
<code class="language-csharp">Stream testStream = CreateStreamFromString("a,b \n c,d");</code>
Gestion des ressources :
Bien que la méthode StreamWriter
de Dispose()
ne gère pas directement les ressources à éliminer (elle enveloppe le MemoryStream
), il est recommandé de disposer du MemoryStream
après utilisation :
<code class="language-csharp">using (var stream = CreateStreamFromString("test data")) { // Your test code using 'stream' here... }</code>
La déclaration using
garantit une élimination appropriée, quelles que soient les exceptions.
.NET 4.5 et versions ultérieures :
Bien que la méthode fournie fonctionne sur toutes les versions de .NET, .NET 4.5
et versions ultérieures proposent StreamWriter
des surcharges vous permettant de garder le flux sous-jacent ouvert après la suppression de l'écrivain. Pour les scénarios avancés nécessitant ce comportement, consultez la discussion suivante sur Stack Overflow :
Garder le flux ouvert après avoir éliminé le StreamWriter
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!