使用字串流模擬 .NET 單元測試中的檔案輸入
單元測試通常需要模擬檔案輸入。 在 .NET 中,可以透過直接從字串建立流來有效地實現這一點。 這是一個簡潔的方法:
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; }
實際應用:
此方法簡化了測試設定:
Stream testStream = CreateStreamFromString("a,b \n c,d");
資源管理:
雖然 StreamWriter
的 Dispose()
方法不直接管理需要處置的資源(它包裝 MemoryStream
),但最佳實踐是在使用後處置 MemoryStream
:
using (var stream = CreateStreamFromString("test data")) { // Your test code using 'stream' here... }
using
聲明確保正確處置,無論是否有例外情況。
.NET 4.5 及更高版本:
雖然提供的方法適用於所有 .NET 版本,但 .NET 4.5
及更高版本提供 StreamWriter
重載,讓您在處理編寫器後保持底層流開啟。 對於需要此行為的進階場景,請參閱以下 Stack Overflow 討論:
以上是如何從字串建立流以進行 .NET 單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!