代码之家  ›  专栏  ›  技术社区  ›  Conor

Gin(golang)Web框架测试结果404,Route正确返回JSON响应

  •  0
  • Conor  · 技术社区  · 5 年前

    我在看医生 here ,并且当使用curl测试时,路由(/services)运行良好,但是集成测试返回404响应。删除/hello的测试并不能解决这个问题,因为我假设是路由器/新记录器出了故障。

    更新

    一个善良的灵魂在他们的机器上测试了我的代码,测试通过了,所以它必须是本地linuxbrew postgres或Go(都是通过linuxbrew安装的)问题,错误不会输出到终端。

    主菜单.go

    package main
    
    import (
        "github.com/gin-gonic/gin"
        "github.com/ramblingbarney/finding_taylor_swift_api/controllers"
        "github.com/ramblingbarney/finding_taylor_swift_api/models"
    )
    
    func setupRouter() *gin.Engine {
        r := gin.Default()
        r.GET("/hello", func(c *gin.Context) {
            c.String(200, "hello world")
        })
        r.GET("/services", controllers.FindServices)
    
        return r
    }
    
    func main() {
        r := setupRouter()
    
        models.ConnectDataBase()
    
        r.Run(":8083")
    }
    

    网络_测试.go

    package main
    
    import (
        "encoding/json"
        "fmt"
        "net/http"
        "net/http/httptest"
        "testing"
    
        "github.com/stretchr/testify/assert"
    )
    
    ...
    
    func TestPingRoute(t *testing.T) {
        router := setupRouter()
    
        w := httptest.NewRecorder()
        req, _ := http.NewRequest("GET", "/hello", nil)
        router.ServeHTTP(w, req)
    
        assert.Equal(t, 200, w.Code)
        assert.Equal(t, "hello world", w.Body.String())
    }
    
    func TestServicesRoute(t *testing.T) {
        router := setupRouter()
    
        w := httptest.NewRecorder()
        req, _ := http.NewRequest("GET", "/services", nil)
        router.ServeHTTP(w, req)
    
    ....
    
        assert.Equal(t, 200, w.Code)
    }
    

    的测试通过了。

    0 回复  |  直到 5 年前
    推荐文章