Heim > Backend-Entwicklung > Golang > Wie lege ich Request.FormFile in Go HTTP Endpoint Testing fest?

Wie lege ich Request.FormFile in Go HTTP Endpoint Testing fest?

DDD
Freigeben: 2024-11-03 10:00:29
Original
575 Leute haben es durchsucht

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

Testen der Go http.Request.FormFile-Erzwingung

Problem: Wie können Sie Request.FormFile beim Testen eines Endpunkts festlegen?

Lösung:

Um einen Endpunkt zu testen, der eine FormFile erfordert, können Sie mit dem Paket mime/multipart eine mehrteilige Formulardatenanforderung erstellen. Hier ist eine Demonstration:

<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>
Nach dem Login kopieren

Dieses Beispiel verwendet das Paket mime/multipart, um eine mehrteilige Formulardatenanforderung mit einer Formulardatei zu erstellen. Die Anfrage kann dann am Endpunkt getestet werden.

Zusätzliche Informationen:

  • Das Pipe-Paket kann auch zum Puffern mehrteiliger Formulardaten verwendet werden.
  • stringBody kann verwendet werden, um eine mehrteilige Anfrage mit einem String-Formularfeld zu erstellen.

Das obige ist der detaillierte Inhalt vonWie lege ich Request.FormFile in Go HTTP Endpoint Testing fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage