自动化生成测试方法:
gotests
https://github.com/cweill/gotests
1. 数据库 mock
https://github.com/DATA-DOG/go-sqlmock
2.go check 框架:
3.
ginkgo 框架
https://www.oschina.net/p/Ginkgo?hmsr=aladdin1e1
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
Go 写测试必学的三个库:Ginkgo、testify和GoMock
https://blog.csdn.net/goodboynihaohao/article/details/79392500
4.各个框架的主要用途
convey 主要用途是用来组织测试用例的
gomock 主要用来给接口打桩的。mockgen可以生成对应的接口测试文件。
gostub 主要用来给变量、函数、过程打桩 但是给函数打桩时,需要做侵入式修改
monkey 主要也是用来给变量、函数打桩的
gostub打桩的原理式通过反射,所以要求调用stub函数传入第一个参数必须是指针,然而函数并没有指针的概念,所以需要对函数做侵入式修改。
monkey打桩的原理则是在运行时通过汇编语句重写可执行文件,将待打桩函数或方法的实现跳转到桩实现,原理和热补丁类似。但是moneky不是线程安全的,不能用在并发测试中
对于以上几个框架,简书上有大神已经做了详细介绍了
下面给出链接
convey
https://www.jianshu.com/p/e3b2b1194830
gomock
https://www.jianshu.com/p/f4e773a1b11f
monkey
https://www.jianshu.com/p/2f675d5e334e
gostub
https://www.jianshu.com/p/70a93a9ed186