为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
四季花海 2021-11-01 10:30:46
我一直在四处寻找答案,但我找不到。我的问题是,是否可以测试依赖于动态 URL 令牌的处理程序函数?例如,假设我的处理程序函数需要来自动态生成的 URL 的令牌(我不知道令牌是如何生成的,除了 URL 参数之外我也无法访问它)。我的 URL 将始终如下所示:www.example.com/?token=randomtokenherefunc 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}是否可以在不访问令牌创建方式的情况下以某种方式对该处理程序函数进行单元测试?
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

我能想到的最简单的事情是创建一个辅助函数,它将所有参数作为处理程序,另外将令牌作为参数。然后您可以对该函数进行单元测试。所以像:


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) {

    ...

}


查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信