Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menetapkan Request.FormFile dalam Ujian Titik Akhir HTTP Go?

Bagaimana untuk Menetapkan Request.FormFile dalam Ujian Titik Akhir HTTP Go?

DDD
DDDasal
2024-11-03 10:00:29626semak imbas

How to Set Request.FormFile in Go HTTP Endpoint Testing?

Menguji Pergi http.Request.FormFile Enforcement

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:

  • Pakej paip juga boleh digunakan untuk menimbal data borang berbilang bahagian.
  • stringBody boleh digunakan untuk membuat permintaan berbilang bahagian dengan medan bentuk rentetan.

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!

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