gpt4 book ai didi

unit-testing - 如何测试以确保函数被调用?

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:53 26 4
gpt4 key购买 nike

我想做单元测试。为了简单起见,我只想确保调用“JWTCheck”。我该怎么做?

这是我实现 JWTCheck 的文件:

type JWTChecker struct {
SubjectPrefix string
}

func (j *JWTChecker) JWTCheck(next http.Handler) http.Handler {
// Do something
}

这是我实现路由器的地方:

import (
"net/http"
"github.com/gorilla/mux"

)

// Router returns a preconfigured router for application
func (a *Adapter) Router() http.Handler {
router := mux.NewRouter()

jwtChecker := JWTChecker{
SubjectPrefix: "myappName",
}

/* Setup Loans Routes */
loanrouter := router.PathPrefix("/lending/loans").Subrouter()
if !a.Debug {
loanrouter.Use(jwtChecker.JWTCheck)
}
loanrouter.HandleFunc("/customer/{customerid}/loan/{loanid}", a.GetLoan).Methods("GET")

return router
}

最佳答案

你必须使用 net/http/httptest 来编写单元测试用例,测试用例的函数名将 Test 作为你想要的函数名的前缀测试。此外,文件名将以 yourfilename_test.go

开头
func Test<YourFuncName>(t *testing.T) {

req, err := http.NewRequest("GET", "<your function url>", nil)

if err != nil {
panic(err.Error())
}

w := httptest.NewRecorder()

handler.ServeHTTP(w, req)

if w.Code != http.StatusOK {
t.Errorf("Request failed, got: %d, expected: %d.", w.Code, http.StatusOK)
}
}

关于unit-testing - 如何测试以确保函数被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com