Maison >développement back-end >C++ >Comment puis-je créer un flux à partir d'une chaîne pour faciliter les tests unitaires ?

Comment puis-je créer un flux à partir d'une chaîne pour faciliter les tests unitaires ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-22 15:01:11842parcourir

How Can I Create a Stream from a String for Easier Unit Testing?

Simplifiez les tests unitaires : créez des flux avec des chaînes

Les méthodes de tests unitaires pour gérer les flux de fichiers texte peuvent être délicates. Pour simplifier ce processus, vous pouvez utiliser la méthode GenerateStreamFromString :

<code class="language-csharp">public static Stream GenerateStreamFromString(string s)
{
    var stream = new MemoryStream();
    var writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}</code>

Exemple d'utilisation :

<code class="language-csharp">Stream s = GenerateStreamFromString("a,b \n c,d");</code>

Utiliser Stream et Dispose

N'oubliez pas d'utiliser l'instruction using pour vous assurer que le flux est diffusé correctement :

<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d"))
{
    // ... 对流进行操作
}</code>

StreamWriter et ressources de publication

Notez que StreamWriter n'est pas publié explicitement. En effet, il n’utilise aucune ressource qui doit être libérée. La méthode Dispose ferme principalement le flux sous-jacent, dans ce cas MemoryStream.

.NET 4.5 et supérieur

Dans .NET 4.5 et versions ultérieures, StreamWriter fournit une méthode surchargée qui maintient le flux sous-jacent ouvert même après la désallocation de writer. Cependant, le code fourni ci-dessus offre les mêmes fonctionnalités tout en étant également compatible avec les versions antérieures de .NET.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn