GO的单元测试

关键点纪要

  • 文件必须以 _test.go 结尾,函数名必须以 Test 开头。举栗子:

    1
    2
    3
    4
    my2_test.gofunc Test2(){}
    my_test.go, func Test(){}
    特别注意,根据习惯,很容易犯错如下:
    my_test2.go, func myTest(){}//注意这是错误的
  • 比如和测试代码同一个包

    1
    2
    3
    4
    5
    6
    7
    8
    --websockets(文件夹)
    --client.go(package websockets)
    --clinet_test.go
    package websockets
    import "testing"
    func Test_client(t *testing.T){
    //测试client.go中的func
    }
  • go test -v my_test.go 或者 go test -v . (注意-v可以打印详细测试结果)

    1
    2
    3
    4
    5
    6
    PS D:\go> go test -v .\websockets\my_test.go
    === RUN Test1
    map[1012:{state:{NoUnkeyedLiterals:{} DoNotCompare:[] DoNotCopy:[] atomicMessageInfo:<nil>} sizeCache:0 unknownFields:[] PlotIds:[]} 9999:{state:{NoUnkeyedLiterals:{} DoNotCompare:[] DoNotCopy:[] atomicMessageInfo:<nil>} sizeCache:0 unknownFields:[] MessageId:<nil> ClientIndex:<nil> Data:[]}]@#@#@#--- PASS: Test1 (0.00s)
    PASS
    ok command-line-arguments 0.106s
    PS D:\go>
  • 在命令行中添加-benchmem参数以显示内存分配情况(暂时没有实操过)

建议收藏

http://c.biancheng.net/view/124.html

https://zhuanlan.zhihu.com/p/391478681

注意多利用单元测试来测试写的func,避免一直通过在main中调用测试,养成习惯!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!