Heim >Backend-Entwicklung >C++ >Wie kann ich einen Stream aus einem String erstellen, um Unit-Tests zu vereinfachen?

Wie kann ich einen Stream aus einem String erstellen, um Unit-Tests zu vereinfachen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-22 15:01:11792Durchsuche

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

Unit-Tests vereinfachen: Streams mit Strings erstellen

Unit-Testmethoden zur Handhabung von Textdateiströmen können schwierig sein. Um diesen Vorgang zu vereinfachen, können Sie die GenerateStreamFromString-Methode verwenden:

<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>

Anwendungsbeispiel:

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

Streamen und Entsorgen verwenden

Denken Sie daran, die using-Anweisung zu verwenden, um sicherzustellen, dass der Stream korrekt freigegeben wird:

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

StreamWriter und Release-Ressourcen

Beachten Sie, dass StreamWriter nicht explizit freigegeben ist. Dies liegt daran, dass keine Ressourcen verwendet werden, die freigegeben werden müssen. Die Methode Dispose schließt hauptsächlich den zugrunde liegenden Stream, in diesem Fall MemoryStream.

.NET 4.5 und höher

In .NET 4.5 und höher stellt StreamWriter eine überladene Methode bereit, die den zugrunde liegenden Stream auch nach der Freigabe von writer geöffnet hält. Der oben bereitgestellte Code erreicht jedoch die gleiche Funktionalität und ist gleichzeitig mit früheren .NET-Versionen kompatibel.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Stream aus einem String erstellen, um Unit-Tests zu vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn