我正在学习一些有关 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。输出表明未涵盖此条件。
所以,为什么我可以在登录时检查它,而 go 工具没有检测到它,我错过了什么?
慕神8447489
相关分类