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.

Golang testlerinde tam olarak hangi verileri test edeceğinizi bilmiyorsanız, aşağıda gösterildiği gibi bir normal regex yer tutucusu kullanabilirsiniz. Bu örnek, yanıt gövdesinin bir parçası olarak sayısal bir kimlik verisi beklemektedir, ancak verinin tam olarak ne olduğunu bilmediğimiz için ID_REGEX kullanıyoruz.


Örnek


package league

import (
"bytes"
"encoding/json"
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)

func TestCreate(t *testing.T) {
// Some other code.

requestBody := `
{
"name": "Premier League"
}
`

responseBody := `
{
"operation": "leagues_post",
"data": {
"id": ID_REGEX
}
}
`

rq := httptest.NewRequest(http.MethodPost, "/leagues", strings.NewReader(requestBody))
rw := httptest.NewRecorder()

yourHandler.Create(rw, rq)

// Flatten formatted json string.
buffer := new(bytes.Buffer)
_ = json.Compact(buffer, []byte(responseBody))

// Replace placeholders with corresponding regex patterns.
expectedBody := strings.ReplaceAll(buffer.String(), "ID_REGEX", "\\d+/g") // Or "\\w+" for strings, or just use ".*?" to match anything

assert.Regexp(t, expectedBody, rw.Body.String())

// Some other code.
}