Simulasi Input Fail dalam Ujian Unit .NET dengan Aliran Rentetan
Ujian unit selalunya memerlukan simulasi input fail. Ini boleh dicapai dengan cekap dalam .NET dengan mencipta aliran terus daripada rentetan. Berikut adalah kaedah ringkas:
<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>
Aplikasi Praktikal:
Kaedah ini memudahkan persediaan ujian:
<code class="language-csharp">Stream testStream = CreateStreamFromString("a,b \n c,d");</code>
Pengurusan Sumber:
Walaupun kaedah StreamWriter
Dispose()
tidak secara langsung menguruskan sumber yang memerlukan pelupusan (ia membalut MemoryStream
), amalan terbaik untuk melupuskan MemoryStream
selepas digunakan:
<code class="language-csharp">using (var stream = CreateStreamFromString("test data")) { // Your test code using 'stream' here... }</code>
Pernyataan using
memastikan pelupusan yang betul, tanpa mengira pengecualian.
.NET 4.5 dan Kemudian:
Walaupun kaedah yang disediakan berfungsi merentasi semua versi .NET, .NET 4.5
dan kemudian menawarkan StreamWriter
lebihan beban yang membolehkan anda memastikan strim asas terbuka selepas melupuskan penulis. Untuk senario lanjutan yang memerlukan tingkah laku ini, rujuk perbincangan Stack Overflow berikut:
Memastikan Strim Terbuka Selepas Melupuskan Penulis Strim
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Strim daripada Strings untuk Ujian Unit .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!