跳到主要内容

测试

简单api测试示例

HTTP 测试首选 net/http/httptest 包。

main.go 文件

package main

import (
"fmt"
"github.com/gin-gonic/gin"
)

func pingHandler(c *gin.Context) {
c.String(200, "pong")
}

func setupRouter() *gin.Engine {
router := gin.Default()
router.GET("/ping", pingHandler)

return router
}

func main() {
r := setupRouter()

err := r.Run("127.0.0.1:8000")
if err != nil {
fmt.Println(err)
return
}
}

main_test.go 文件

package main

import (
"github.com/stretchr/testify/assert"
"net/http"
"net/http/httptest"
"testing"
)

func TestPing(t *testing.T) {
r := setupRouter()
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/ping", nil)
r.ServeHTTP(w, req)

assert.Equal(t, 200, w.Code)
assert.Equal(t, "pong", w.Body.String())
}

处理依赖关系

go mod tidy

执行单元测试

go test -v .