Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Özel kafa parametrelerini kullanan bir adresi Golang ile test etmek isterseniz, aşağıdaki örneği kullanabilirsiniz.


Kod


package user

import (
"net/http"
)

type List struct {}

func (l List) Handle(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
w.Header().Set("X-Request-Id", r.Header.Get("X-Request-Id"))

w.WriteHeader(http.StatusOK)

_, _ = w.Write([]byte("inanzzz"))
}

Örnek


package user

import (
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"
)

func TestList_Handle(t *testing.T) {
req := httptest.NewRequest(http.MethodGet, "/api/v1/users", nil)
req.Header.Set("X-Request-Id", "Test-Header")
res := httptest.NewRecorder()

list := List{}
list.Handle(res, req)

result := res.Result()

body, err := ioutil.ReadAll(result.Body)
if err != nil {
t.Error(err)
}
result.Body.Close()

if http.StatusOK != result.StatusCode {
t.Error("wanted", http.StatusOK, "got", result.StatusCode)
}
if "Test-Header" != result.Header.Get("X-Request-Id") {
t.Error("wanted Test-Header got", result.Header.Get("X-Request-Id"))
}
if "inanzzz" != string(body) {
t.Error("wanted inanzzz got", string(body))
}
}