Menguatkuasakan Kegagalan pada Bacaan Badan Respons
Menguji ketelitian pembungkus klien HTTP dalam Go memerlukan simulasi pelbagai senario, termasuk ralat semasa membaca badan tindak balas. Coretan kod yang disediakan menganggap persediaan pelayan palsu dengan pengendali tersuai. Untuk memaksa kegagalan baca pada badan tindak balas, pengendali perlu diubah suai.
Memeriksa Dokumentasi Badan Respons
Menurut dokumentasi Response.Body, a operasi baca boleh mengembalikan ralat dalam senario ini:
Mendorong Kegagalan melalui Tidak Sah Respons HTTP
Kaedah paling mudah untuk mendorong kegagalan adalah dengan menjana respons HTTP yang tidak sah. Contohnya, menetapkan pengepala Panjang Kandungan kepada nilai bukan sifar dan tidak menghantar kandungan sebenar akan mengakibatkan ralat EOF yang tidak dijangka apabila pelanggan cuba membaca kandungan.
Contoh Pengendali Gagal
Berikut ialah contoh pengendali yang melakukan perkara ini:
<code class="go">handler := func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1") }</code>
Ralat Jangkaan
Apabila pelanggan cuba membaca kandungan daripada pengendali ini, ia akan menghadapi ralat berikut:
Unable to read from body unexpected EOF
Pendekatan ini secara berkesan memaksa operasi ioutil.ReadAll dalam pembungkus gagal, mensimulasikan senario ralat realistik yang boleh berlaku semasa komunikasi rangkaian.
Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan Ralat Bacaan Badan Respons dalam Ujian Klien HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!