拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Go-轻松搞定单测从httptest到testify的高级实战

Go-Go-轻松搞定单测从httptest到testify的高级实战文章导语单元测试是Go代码的身份证。Go内置的testing包加上httptest、testify能构建完整的测试体系。本文深入HTTP测试、数据库Mock、异步测试等高级场景。一、HTTP测试funcTestGetUser(t*testing.T){router:setupRouter()req:httptest.NewRequest(GET,/users/1,nil)w:httptest.NewRecorder()router.ServeHTTP(w,req)assert.Equal(t,200,w.Code)varresp APIResponse json.Unmarshal(w.Body.Bytes(),resp)assert.Equal(t,0,resp.Code)}二、数据库Mockimportgithub.com/DATA-DOG/go-sqlmockfuncTestUserRepo(t*testing.T){db,mock,_:sqlmock.New()deferdb.Close()rows:sqlmock.NewRows([]string{id,name}).AddRow(1,test)mock.ExpectQuery(SELECT).WillReturnRows(rows)repo:NewUserRepo(db)user,err:repo.FindByID(1)assert.NoError(t,err)assert.Equal(t,test,user.Name)}三、全文总结httptest测试HTTP Handlersqlmock Mock数据库testify提供断言和Mock子测试(Subtest)组织测试用例。参考文献Go testing包文档testify: https://github.com/stretchr/testifysqlmock: https://github.com/DATA-DOG/go-sqlmock
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门