Rumah >pembangunan bahagian belakang >Golang >Bagaimana Memaksa Ralat Semasa Badan Respons Baca dalam Go dengan httptest?
Cara Memaksa Ralat pada Bacaan Badan Respons
Anda berhasrat untuk menguji pembungkus klien HTTP anda dengan teliti yang ditulis dalam Go, yang melibatkan pembacaan respons badan dengan ioutil.ReadAll. Walau bagaimanapun, anda menghadapi kesukaran untuk mendorong operasi baca gagal dengan bantuan httptest.
Berikut ialah pendekatan berkesan untuk mensimulasikan ralat semasa membaca badan tindak balas:
Sebagai dokumentasi untuk Respons. Badan mencadangkan, ralat boleh berlaku apabila membaca daripadanya dalam keadaan tertentu. Satu cara untuk menggesa ralat sedemikian adalah untuk menjana respons HTTP yang tidak sah dalam pengendali ujian anda.
Teknik mudah melibatkan memanipulasi pengepala Panjang Kandungan:
<code class="go">handler := func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1") }</code>
Pengendali ini menunjukkan ia mempunyai isi kandungan satu bait tetapi masih kosong. Oleh itu, apabila pelanggan cuba membaca bait yang dijangkakan, ia akan menemui akhir fail yang tidak dijangka, menghasilkan ralat. Mesej ralat yang terhasil berbunyi seperti berikut:
Unable to read from body unexpected EOF
Dengan bereksperimen dengan teknik lain, anda boleh mensimulasikan pelbagai jenis ralat yang mungkin berlaku semasa mengakses badan respons. Ini membolehkan anda menggunakan keupayaan pengendalian ralat pembungkus pelanggan anda, memastikan keteguhannya.
Atas ialah kandungan terperinci Bagaimana Memaksa Ralat Semasa Badan Respons Baca dalam Go dengan httptest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!