我有一个如下的go http服务器:
func metricsHandler(w http.ResponseWriter, req *http.Request) {
cloudwatch_func()
}
在此处理程序中,我调用了另一个函数,例如cloudwatch_func(),它输出调试日志,如
log.Println("CLI helper - " +
"aws cloudwatch get-metric-statistics" +
" --metric-name " + metric.Name +
" --dimensions " + dimensionsToCliString(dimensions) +
" --namespace " + *namespace +
" --statistics " + *statistics[0] +
" --period " + strconv.FormatInt(period, 10) +
" --start-time " + startTime.Format(time.RFC3339) +
" --end-time " + endTime.Format(time.RFC3339))
现在,我要使用(test_func.go)中描述的方式,通过go test -v测试此http服务器处理程序
func TestMetricsHandler(t *testing.T){
// call metric api
req, err := http.NewRequest("GET", "/metrics", nil)
rr := httptest.NewRecorder()
http.HandlerFunc(metricsHandler).ServeHTTP(rr, req)
log.Println(rr.Body.String())
}
我从测试代码中获取日志,但是如何在这里使用test_func.go从源代码输出日志。
此“如何在Go单元测试中测试函数的输出(stdout / stderr)”帖子不会解决嵌套函数问题