依赖管理
依赖管理三要素:
1.配置文件,描述依赖 go.mod
2.中心仓库管理依赖库 Proxy
3.本地工具 go get/mod
依赖配置-go.mod
1.模块路径 -- 依赖管理基本单元
2.原生库 -- Go版本号
3.单元依赖。单元依赖的依赖标识为:[Module Path][Version/Pseudo-version]。其中version有语义化版本和基于commit伪版本。
闲话:当一个项目依赖于多个子项目,而子项目依赖孙项目时,则这个项目的版本号应该为孙项目的最大版本号,即最低兼容版本。(前提是孙项目的高版本号兼容低版本号)例如A项目依赖于2个子项目C,D,C,D分别依赖于C项目的v1.3,v1.4版本,则这个项目的版本号应该为v1.4。
依赖分发 - 变量 GOPROXY
GOPROXY = "proxy1.cn, proxy2.cn, direct" . 服务站点URL列表,"direct"表示原站。
依赖会优先从proxy1查找,再向proxy2查找,找不到会回源到中心源站direct查找。
go mod 工具命令
go mod 包含三个模块命令:
1.init 初始化项目依赖,并创建go.mod文件。
2.download 下载模块到本地缓存。
3.tidy 增加环境所需要的依赖到go.mod中,并且删除项目未使用的依赖。
单元测试
单元测试规则
. 所有的测试文件以 _test.go 结尾
. func TestXxx (*testing.T) 测试函数需要按照此规范命名
. 初始化逻辑放到 TestMain 中。
举一个简单的例子:
运行go test,则该package下所有的测试用例都会执行。