If you don't know what exact data you are asserting in Golang unit tests, you can use a regex pattern placeholder as shown below. This example expects a numeric ID data as part of response body but we don't know what it is so using ID_REGEX as placeholder.


package league

import (

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.