Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menetapkan Request.FormFile dalam Ujian Titik Akhir HTTP Go?
Masalah: Bagaimanakah anda boleh menetapkan Request.FormFile semasa menguji titik akhir?
Penyelesaian:
Untuk menguji titik akhir yang memerlukan FormFile, anda boleh mencipta permintaan data borang berbilang bahagian menggunakan pakej mime/multipart. Berikut ialah demonstrasi:
<code class="go">import ( "bytes" "io" "io/ioutil" "mime/multipart" "net/http" "net/http/httptest" "testing" ) func testEndpoint(t *testing.T) { // Create a multipart form data writer body := &bytes.Buffer{} writer := multipart.NewWriter(body) // Create a form file part part, err := writer.CreateFormFile("y", "someimg.png") if err != nil { t.Fatalf("error creating FormFile: %v", err) } // Copy a test image into the form file part img, err := ioutil.ReadFile("testdata/someimg.png") if err != nil { t.Fatalf("error reading image: %v", err) } if _, err = io.Copy(part, bytes.NewReader(img)); err != nil { t.Fatalf("error copying image: %v", err) } // Close the form data writer err = writer.Close() if err != nil { t.Fatalf("error closing form data writer: %v", err) } // Create a new HTTP request request := httptest.NewRequest("POST", "/", body) request.Header.Add("Content-Type", writer.FormDataContentType()) // Test the endpoint // ... }</code>
Sampel ini menggunakan pakej mime/berbilang bahagian untuk membuat permintaan data borang berbilang bahagian dengan fail borang. Permintaan itu kemudiannya boleh diuji terhadap titik akhir.
Maklumat Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Request.FormFile dalam Ujian Titik Akhir HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!