首頁 >後端開發 >C++ >如何從字串建立流以進行 .NET 單元測試?

如何從字串建立流以進行 .NET 單元測試?

Patricia Arquette
Patricia Arquette原創
2025-01-22 15:07:10776瀏覽

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

使用字串流模擬 .NET 單元測試中的檔案輸入

單元測試通常需要模擬檔案輸入。 在 .NET 中,可以透過直接從字串建立流來有效地實現這一點。 這是一個簡潔的方法:

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

實際應用:

此方法簡化了測試設定:

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

資源管理:

雖然 StreamWriterDispose() 方法不直接管理需要處置的資源(它包裝 MemoryStream),但最佳實踐是在使用後處置 MemoryStream

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

using 聲明確保正確處置,無論是否有例外情況。

.NET 4.5 及更高版本:

雖然提供的方法適用於所有 .NET 版本,但 .NET 4.5 及更高版本提供 StreamWriter 重載,讓您在處理編寫器後保持底層流開啟。 對於需要此行為的進階場景,請參閱以下 Stack Overflow 討論:

處置 StreamWriter 後保持流打開

以上是如何從字串建立流以進行 .NET 單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn