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
Lepaskan: 2024-11-03 10:00:29
asal
638 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan