测试依赖于 Go 中动态 URL 的处理程序函数

我一直在四处寻找答案,但我找不到。我的问题是,是否可以测试依赖于动态 URL 令牌的处理程序函数?


例如,假设我的处理程序函数需要来自动态生成的 URL 的令牌(我不知道令牌是如何生成的,除了 URL 参数之外我也无法访问它)。我的 URL 将始终如下所示:www.example.com/?token=randomtokenhere


func TokenProcessing(w http.ResponseWriter, r *http.Request) {

     token := r.URL.Query().Get("token") // dynamically generated from parsed URL 


      // code to do something with said token


}

是否可以在不访问令牌创建方式的情况下以某种方式对该处理程序函数进行单元测试?


四季花海
浏览 143回答 2
2回答

米脂

我能想到的最简单的事情是创建一个辅助函数,它将所有参数作为处理程序,另外将令牌作为参数。然后您可以对该函数进行单元测试。所以像:func TokenProcessing(w http.ResponseWriter, r *http.Request) {    token := r.URL.Query().Get("token")    tokenProcessingHelper(w, r, token)}// unit test me!func tokenProcessingHelper(w http.ResponseWriter, r *http.Request, token string) {    ...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go