簡化單元測試:用字串建立流
單元測試處理文字檔案流的方法可能很棘手。為了簡化這個過程,可以使用GenerateStreamFromString
方法:
<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>
使用方法範例:
<code class="language-csharp">Stream s = GenerateStreamFromString("a,b \n c,d");</code>
使用Stream和Dispose
記得使用using
語句來確保正確釋放流:
<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d")) { // ... 对流进行操作 }</code>
StreamWriter與釋放資源
請注意,StreamWriter
沒有明確釋放。這是因為它不使用任何需要釋放的資源。 Dispose
方法主要關閉底層基礎流,在本例中是MemoryStream
。
.NET 4.5及更高版本
在.NET 4.5及更高版本中,StreamWriter
提供了一個重載方法,即使在writer
被釋放後也能保持底層流打開。但是,上面提供的程式碼在實現相同功能的同時,也相容於早期.NET版本。
以上是如何從字串建立流以簡化單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!