Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Strim daripada Strings untuk Ujian Unit .NET?

Bagaimana untuk Mencipta Strim daripada Strings untuk Ujian Unit .NET?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 15:07:10776semak imbas

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn