Unit testing Golang unittest http处理程序
我想做一个简单的服务器,可以接收来自服务的web钩子请求,并为我处理它们。为了好玩,我想在Go中构建它,因为这听起来是一种很好的语言,这是一个简单的项目开始 服务器似乎工作正常,但我无法让unittest正常工作。经检查,似乎每个url都给出了404。我做错了什么 梅因,加油 main_test.goUnit testing Golang unittest http处理程序,unit-testing,go,Unit Testing,Go,我想做一个简单的服务器,可以接收来自服务的web钩子请求,并为我处理它们。为了好玩,我想在Go中构建它,因为这听起来是一种很好的语言,这是一个简单的项目开始 服务器似乎工作正常,但我无法让unittest正常工作。经检查,似乎每个url都给出了404。我做错了什么 梅因,加油 main_test.go 处理程序已在main中注册,但在运行单元测试时不会调用main。因此,当您尝试通过DefaultMux进行测试时,不会注册任何处理程序,并且会得到404。但是,通常测试处理程序,而不是mux;因此
处理程序已在
main
中注册,但在运行单元测试时不会调用main
。因此,当您尝试通过DefaultMux
进行测试时,不会注册任何处理程序,并且会得到404。但是,通常测试处理程序,而不是mux;因此,不是这一行:
http.DefaultServeMux.ServeHTTP(rr, req)
您可以改为测试:
pingHandler(rr, req)
即使没有执行main
来注册处理程序,它也会工作,因为您现在直接测试处理程序
您还应该使用创建测试请求http.NewRequest
用于创建在客户端中使用的请求
http.DefaultServeMux.ServeHTTP(rr, req)
pingHandler(rr, req)