Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Strim daripada Rentetan untuk Ujian Unit yang Lebih Mudah?

Bagaimanakah Saya Boleh Mencipta Strim daripada Rentetan untuk Ujian Unit yang Lebih Mudah?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-22 15:01:11790semak imbas

How Can I Create a Stream from a String for Easier Unit Testing?

Ringkaskan ujian unit: buat strim dengan rentetan

Cara ujian unit mengendalikan strim fail teks boleh menjadi rumit. Untuk memudahkan proses ini, anda boleh menggunakan kaedah 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>

Contoh penggunaan:

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

Gunakan Strim dan Buang

Ingat untuk menggunakan pernyataan using untuk memastikan strim dikeluarkan dengan betul:

<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d"))
{
    // ... 对流进行操作
}</code>

StreamWriter dan keluarkan sumber

Perhatikan bahawa StreamWriter tidak dikeluarkan secara eksplisit. Ini kerana ia tidak menggunakan sebarang sumber yang perlu dikeluarkan. Kaedah Dispose terutamanya menutup strim asas yang mendasari, dalam kes ini MemoryStream.

.NET 4.5 dan ke atas

Dalam .NET 4.5 dan lebih baru, StreamWriter menyediakan kaedah terlebih beban yang memastikan strim asas terbuka walaupun selepas writer diagihkan. Walau bagaimanapun, kod yang disediakan di atas mencapai kefungsian yang sama sambil juga serasi dengan versi .NET yang lebih awal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Strim daripada Rentetan untuk Ujian Unit yang Lebih Mudah?. 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