go test单元测试技巧

OctopusLian · · 2558 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

## 起因 周五在做```go test```测试时,碰到个问题,我要对一个```xxx```函数写测试样例,然而它的首字母是小写的,没有导出,单元测试过不去,而这个```xxx```函数外面还有一个```YYY```函数首字母是大写的,但要经过很长的逻辑才能到```xxx```函数。这时我又要完成对```xxx```函数进行测试,又不想经过```YYY```函数走逻辑,该怎么办呢? ## 实现过程 首先,绝对不能做的事: - 将```xxx```函数改为首字母大写的```Xxx```函数 原因:很多地方都在调这个函数,你改了这一处只满足你这次的测试,那其他基本业务流程也就崩了。 我目前是在```test```文件夹里新建了一个```xxx_test.go```测试文件,样子长这样 ```go package test func Testxxx(t testing.T){ control.XXX() } ``` 由于```xxx```函数是在```control```包里,因此我要在```control```包下建一个```export.go```文件 ```go package control var XXX = xxx ``` 然后执行```go test```命令,它会遍历```control```包下的所有文件,这时```export.go```文件 里的```var XXX = xxx```就起到了一个桥梁作用。 这时测试的时候就不需要再经过```YYY```的逻辑走到```xxx```函数里面。 ## 参考文章 [付费用户「每日一学」2019-06-14:你应该知道的单元测试小技巧](https://studygolang.com/topics/9332)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2558 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传