Heim >Backend-Entwicklung >C++ >Wie erstelle ich Streams aus Strings für .NET-Unit-Tests?

Wie erstelle ich Streams aus Strings für .NET-Unit-Tests?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-22 15:07:10742Durchsuche

How to Create Streams from Strings for .NET Unit Testing?

Simulieren von Dateieingaben in .NET-Unit-Tests mit String-Streams

Unit-Tests erfordern oft die Simulation von Dateieingaben. Dies kann in .NET effizient erreicht werden, indem Streams direkt aus Strings erstellt werden. Hier ist eine kurze Methode:

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

Praktische Anwendung:

Diese Methode vereinfacht den Testaufbau:

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

Ressourcenmanagement:

Während die StreamWriter-Methode von Dispose() die zu entsorgenden Ressourcen nicht direkt verwaltet (sie umhüllt das MemoryStream), empfiehlt es sich, das MemoryStream nach der Verwendung zu entsorgen:

<code class="language-csharp">using (var stream = CreateStreamFromString("test data"))
{
    // Your test code using 'stream' here...
}</code>

Die using-Erklärung gewährleistet die ordnungsgemäße Entsorgung, unabhängig von Ausnahmen.

.NET 4.5 und höher:

Während die bereitgestellte Methode in allen .NET-Versionen funktioniert, .NET 4.5 und höher bieten StreamWriter Überladungen, die es Ihnen ermöglichen, den zugrunde liegenden Stream nach der Entsorgung des Writers offen zu halten. Informationen zu erweiterten Szenarien, die dieses Verhalten erfordern, finden Sie in der folgenden Diskussion zum Stapelüberlauf:

Den Stream offen halten, nachdem der StreamWriter entsorgt wurde

Das obige ist der detaillierte Inhalt vonWie erstelle ich Streams aus Strings für .NET-Unit-Tests?. 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