在使用go语言进行编程的时候,go test命令方便的让我们进行函数单元测试。
1 | $go test -v |
但是当被测试函数依赖于环境(读取硬件路由表)或者server端实现(发送http请求给server端),本地运行go test执行单元测试就会出现问题。这就需要我们在本地测试代码中将待测试函数中依赖外部的实现部分进行打桩(返回构造的假结果)。
本文以http请求为例,使用httptest包代替server端,构造http返回结果。
目录结构:
peron.go文件,待测函数GetInfo( )
1 | package person |
peron_test.go文件:
1 | package person |
在person目录下执行测试命令:
1 | $go test -v |
输出:
1 | === RUN TestPublishWrongResponseStatus |