Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menguji Panggilan HTTP dalam Go Menggunakan httptest?

Bagaimana untuk Menguji Panggilan HTTP dalam Go Menggunakan httptest?

Linda Hamilton
Linda Hamiltonasal
2024-10-23 17:42:02804semak imbas

How to Test HTTP Calls in Go Using httptest?

Menguji Panggilan HTTP dalam Go

Dalam pembangunan perisian, ujian adalah penting untuk memastikan kebolehpercayaan kod anda. Apabila berurusan dengan panggilan HTTP, ujian yang betul amat penting. Dalam Go, pakej httptest menyediakan cara yang mudah untuk melakukan ujian sedemikian.

Untuk menguji fungsi HTTPPost, mari buat pelayan HTTP palsu menggunakan httptest.NewServer. Pelayan ini boleh dikonfigurasikan untuk mengembalikan respons yang dipratentukan.

Kod sampel berikut menunjukkan cara menulis ujian menggunakan pelayan olok-olok:

<code class="go">import (
    "net/http"
    "net/http/httptest"
    "testing"

    "yourpackage"
)

func TestYourHTTPPost(t *testing.T) {
    ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, `response from the mock server goes here`)
        // you can also inspect the contents of r (the request) to assert over it
    }))
    defer ts.Close()

    mockServerURL := ts.URL

    message := "the message you want to test"

    resp, err := yourpackage.HTTPPost(message, mockServerURL)

    // assert over resp and err here
}</code>

Dalam ujian ini, kami mencipta pelayan olok-olok yang mengembalikan respons tertentu. Kami kemudian membuat panggilan HTTP ke pelayan olok-olok menggunakan fungsi HTTPPost dan menegaskan respons dan sebarang ralat yang dihadapi.

Dengan menggunakan httptest, anda boleh menguji kelakuan panggilan HTTP anda dengan berkesan dan memastikan ia beroperasi seperti yang diharapkan .

Atas ialah kandungan terperinci Bagaimana untuk Menguji Panggilan HTTP dalam Go Menggunakan httptest?. 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