Heim >Backend-Entwicklung >C++ >Wie erstelle ich Streams aus Strings für .NET-Unit-Tests?
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!