项目结构

主要看tests目录,其中还有两个子目录report和suites。 report目录中存放go test -cover生成的相关文件。 suites目录内容稍微多一些。 before.go与after.go分为承担test前后的装载与卸载工作。 cases目录存放所有单元测试case。 cover.sh主要用于生成report目录内容。 run_test.go是go test入口文件。
执行命令
这里没有使用原生的go test,而是使用goconvey来执行集成测试。 goconvey框架封装原生go test并提供了一套非常友好的可视化UI界面,可以直观的看到测试数据,非常方便,详细介绍请移步http://goconvey.co/ 具体运行命令:goconvey -workDir=./tests/suites/ -host= 命令执行后打开 http://localhost:8080 可以看到如下图的页面,该页面也提供了一些小工具,大家自行摸索下吧。

测试编码
GoConvey 主要提供了测试流程与UI可视化界面,而编写测试代码时,常常会遇到一些难以mock的情况,这时候就需要函数打桩或者接口mock的场景,GoStub(专注于打桩)与GoMock(专注于interface mock)框架能够很好的解决这些问题,熟悉一下这两个框架提供的api,然后灵活使用基本可以全部解决掉编写测试代码的问题。