测试
简单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 .