Golang测试参考  [draft]

常规测试 性能测试 单元测试 模糊测试 原生测试包 httptest iotest 故障测试 failpoints Failpoints 是一种在代码中注入错误或其他行为的工具,主要用于测试。当Failpoints被配置为激活状态时,对应的代码片段才会被执行。它可以模拟各种复杂系统中的错误处理,以提高它们的容错性和稳定性。 例如,你可以在开发和调试应用程序时使用 Failpoints 使程序在特定时刻进行错误处理或表现出异常行为。最常见的使用场景是模拟网络延迟、磁盘损坏等异常情况,以测试应用程序对这些异常的处理能力。 Failpoints 也可以用于优化代码。在一些情况下,当有多个 guard 语句时,Failpoints 可以将这些不必要的代码提供给全部内联,使代码更符合 DRY(Don’t Repeat Yourself) 原则。 相关链接: Pingcap/failpoint etcd-io/gofail Mock测试 GoMock gomock是官方的mock生成工具,能够很好地和go test 框架集成。mock代码的生成基于mockgen。 安装mockgen Go 版本< 1.16 GO111MODULE=on go get github.com/golang/mock/mockgen@v1.6.0 Go版本 1.16+ go install github.com/golang/mock/mockgen@latest 使用 GoMock支持两种Mock模式:源码模式和反射模式。完整的参数列表说明如下: 若给定一个 Go 源文件,其中包含要被模拟的接口,则使用 modgen 命令为模拟类生成源代码。它支持以下参数: source: 包含要模拟的接口的文件。 destination: 一个文件,用于编写源代码。如果不设置此选项,代码将打印到标准输出。 package: 用于生成模拟类源代码的包。如果您没有设置它,那么包的名称就是 mock _ concatedwith 输入文件的包。 import: 应该在生成的源代码中使用的显式导入列表,指定为以逗号分隔的 foo = bar/baz 格式的元素列表,其中 bar/baz 是被导入的包,foo 是生成的源代码中用于包的标识符。...

使用gotests生成表驱动测试

使用gotests可以很方便的生成表驱动测试代码,表驱动测试的具体内容,请参考go官方的wiki。下面是具体的使用方法。 安装 使用下面命令进行安装 go install github.com/cweill/gotests/gotests@latest 如果是go1.16之前的版本,可以使用命令 go get -u github.com/cweill/gotests/...来进行安装。 使用 gotests支持的参数如下: Usage of C:\Users\czyt\go\bin\gotests.exe: -all generate tests for all functions and methods -excl string regexp. generate tests for functions and methods that don't match. Takes precedence over -only, -exported, and -all -exported generate tests for exported functions and methods. Takes precedence over -only and -all -i print test inputs in error messages -nosubtests disable generating tests using the Go 1....