testify
Testify 是一个 Go 语言测试工具包,提供断言、模拟对象和测试套件等功能,帮助开发者更高效地编写测试代码。
核心功能:
- 断言工具(assert):支持断言相等、不等、nil 检查等,提供清晰的失败信息,支持条件判断继续测试。
- 终止测试工具(require):与 assert 类似,但断言失败时直接终止当前测试。
- 模拟对象(mock):通过定义接口模拟对象,设置预期调用和返回值,验证测试中方法是否按预期执行。
- 测试套件(suite):支持构建测试套件,提供 Setup/Teardown 方法,集中管理测试逻辑。
使用方法:
- 安装:
go get github.com/stretchr/testify - 导入包(如 assert)并编写测试函数,例如:
assert.Equal(t, 123, 123, "值应相等")
- 模拟对象示例:定义接口实现,设置预期调用
On(),验证AssertExpectations()。
主要特性:
- 支持 Go 1.19 及以上版本。
suite包不支持并行测试。- 提供 API 文档、测试规范建议(如使用 testifylint)及社区支持。
注意事项:
mock包需手动编写模拟逻辑或使用mockery工具生成。suite包需通过suite.Run()启动测试套件。