gin http test
// main.go
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func HelloWorld(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"hello": "world",
})
}
func main() {
router := gin.Default()
router.GET("/", HelloWorld)
router.Run()
}
// main_test.go
package main
import (
"net/http/httptest"
"testing"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
)
func TestHelloWorld1(t *testing.T) {
w := httptest.NewRecorder()
gin.SetMode(gin.TestMode)
c, _ := gin.CreateTestContext(w)
HelloWorld(c)
t.Run("get json data", func(t *testing.T) {
assert.Equal(t, 200, w.Code)
})
}
func TestHelloWorld2(t *testing.T) {
w := httptest.NewRecorder()
router := gin.Default()
gin.SetMode(gin.TestMode)
router.GET("/", HelloWorld)
t.Run("get json data", func(t *testing.T) {
assert.Equal(t, 200, w.Code)
})
}
3.75
4
library for http testing for gin framework
https://github.com/restuwahyu13/go-supertest
Thank you!
4
0
3.67
6
package util
import (
"bytes"
"encoding/binary"
"net/http"
"net/http/httptest"
"github.com/sirupsen/logrus"
)
func HttpTestRequest(method, url string, payload []byte) (*httptest.ResponseRecorder, *http.Request) {
request := make(chan *http.Request, 1)
errors := make(chan error, 1)
if binary.Size(payload) > 0 {
req, err := http.NewRequest(method, url, bytes.NewBuffer(payload))
request <- req
errors <- err
} else {
req, err := http.NewRequest(method, url, nil)
request <- req
errors <- err
}
if <-errors != nil {
logrus.Fatal(<-errors)
}
rr := httptest.NewRecorder()
return rr, <-request
}
Thank you!
6
0
Are there any code examples left?
New code examples in category Other
-
Other 2023-03-27 22:50:10 how to select the whole line in vscode with keyboard shortcut
-
Other 2022-03-27 22:45:24 income of a web developer
-
Other 2022-03-27 22:35:01 \pyrcc_main.py: File does not exist 'resources.qrc'
-
Other 2022-03-27 22:30:45 rick roll embed code
-
Other 2022-03-27 22:20:08 Circuit_04_Potentiometer
-
Other 2022-03-27 22:20:05 iterative power
-
Other 2022-03-27 22:15:11 flutter run all
-
Other 2022-03-27 22:10:05 when is karlson release
-
Other 2022-03-27 22:10:02 wp .htaccess example
-
Other 2022-03-27 22:00:08 bash pause in file read line by line