Untuk memastikan ujian menyeluruh pembungkus klien HTTP anda, anda perlu memaksa bacaan daripada badan tindak balas untuk gagal . Menggunakan httptest, ini boleh dicapai dengan menyediakan pelayan palsu dan mengubah suai penulis respons.
Dengan menyemak dokumentasi Response.Body, kami mendapati bahawa membaca daripadanya mungkin mengembalikan ralat apabila sambungan rangkaian gagal atau pelayan menamatkan respons.
Cara mudah untuk mencetuskan ralat ini ialah menjana respons HTTP yang tidak sah. Satu kaedah ialah "berbohong" tentang panjang kandungan.
<code class="go">handler := func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1") }</code>
Pengendali ini mendakwa ia mempunyai kandungan 1 bait, tetapi ia tidak menghantarnya. Apabila cuba membaca 1 bait daripadanya pada penghujung klien, bacaan akan gagal, mengakibatkan mesej ralat seperti:
Unable to read from body unexpected EOF
Teknik ini membolehkan anda memaksa ralat baca secara berkesan pada badan tindak balas, mensimulasikan senario berpotensi yang mungkin dihadapi dalam penggunaan dunia sebenar. Ingat untuk menutup badan tindak balas selepas membaca untuk mengelakkan sebarang kebocoran sumber.
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel: * Bagaimana untuk Memaksa Ralat Baca pada Badan Respons dalam Go? * Mensimulasikan Ralat Rangkaian dalam Ujian Klien HTTP Go: Memaksa Kegagalan Baca. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!