Let me present my usual solution with gorilla package.
handler.go file
package httpunittest
import (
    "net/http"
    "github.com/gorilla/mux"
)
func GetProduct(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    uuidString, isFound := params["uuid"]
    if !isFound {
        w.WriteHeader(http.StatusBadRequest)
        return
    }
    w.Write([]byte(uuidString))
}
Here, you use the function Vars to fetch all of the URL parameters present within the http.Request. Then, you've to look for the uuid key and do your business logic with it.
handler_test.go file
package httpunittest
import (
    "net/http"
    "net/http/httptest"
    "testing"
    "github.com/gorilla/mux"
    "github.com/stretchr/testify/assert"
)
func TestGetProduct(t *testing.T) {
    t.Run("WithUUID", func(t *testing.T) {
        r := httptest.NewRequest(http.MethodGet, "/products/1", nil) // note that this URL is useless
        r = mux.SetURLVars(r, map[string]string{"uuid": "1"})
        w := httptest.NewRecorder()
        GetProduct(w, r)
        assert.Equal(t, http.StatusOK, w.Result().StatusCode)
    })
    t.Run("Without_UUID", func(t *testing.T) {
        r := httptest.NewRequest(http.MethodGet, "/products", nil) // note that this URL is useless
        w := httptest.NewRecorder()
        GetProduct(w, r)
        assert.Equal(t, http.StatusBadRequest, w.Result().StatusCode)
    })
}
First, I used the functions provided by the httptest package of the Go Standard Library that fits well for unit testing our HTTP handlers.
Then, I used the function SetUrlVars provided by the gorilla package that allows us to set the URL parameters of an http.Request.
Thanks to this you should be able to achieve what you need!