登录
首页 >  Golang >  Go问答

Golang: 如何模拟 net/http 请求超时以进行单元测试

来源:stackoverflow

时间:2024-03-09 19:00:27 388浏览 收藏

今天golang学习网给大家带来了《Golang: 如何模拟 net/http 请求超时以进行单元测试》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我得到了如下代码:

if timeoutErr, ok := err.(net.Error); ok && timeoutErr.Timeout() {
    // Some code that need to test
}

如何生成与此处条件匹配的错误,以便代码将流过 if。


解决方案


error 是一个接口:

type error interface {
        error
        timeout() bool   // is the error a timeout?
        temporary() bool // is the error temporary?
}

要实现它,您需要执行类似的操作(未经测试):

type MyError struct {
  error
}

func (e MyError) Timeout() bool {
  return true
}

func (e MyError) Temporary() bool {
  return true
}

func (e MyError) Error() string {
  return ""
}

请注意,您也必须实现 error(),因为 error 嵌入了 error

到这里,我们也就讲完了《Golang: 如何模拟 net/http 请求超时以进行单元测试》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>