【发布时间】:2022-01-07 13:12:08
【问题描述】:
我正在学习一些有关 Golang 测试覆盖率的知识,并且遇到了一些有趣的问题。
我有一个调用 API 和执行 http.Client.Do(request) 的基本代码。执行后,我检查错误并在找到时返回。
resp, err := Client.Do(request)
if err != nil {
return response, err
}
另外,我已经为它添加了测试。我在哪里模拟 Do 函数并返回错误。
mocks.DoFunc = func(*http.Request) (*http.Response, error) {
return nil, errors.New("hello world")
}
当我记录if err != nil 条件时,我可以看到我的代码正在运行并被这个简单的评估捕获。
我的问题在执行go tool cover -html=coverage.out 时开始。输出表明这个条件没有被覆盖。
所以,为什么我可以在 logging 和 go 工具没有检测到它时检查它,我错过了什么?
【问题讨论】:
标签: unit-testing go testing