用途:指导在 Go 项目中使用 stretchr/testify 编写测试并实践 TDD(测试驱动开发),内容涵盖断言、mock、测试套件与用例组织。
安装:go get github.com/stretchr/testify
主要能力:testify 分为 assert(失败后继续执行,适合多个独立检查)、require(失败立即终止,适合前置条件)、mock(接口 mock,隔离依赖)和 suite(组织共享 setup/teardown 的相关测试)。文中列出常用断言方法,包括相等、nil、布尔、集合、错误、比较、字符串、JSON 和时间等类别。
使用方式:用 require 校验必须通过的前置条件,用 assert 做多项独立验证;采用表驱动测试覆盖多场景;定义实现接口的 Mock 结构体并通过 On 设置期望、Return 设定返回值,支持 mock.Anything、mock.AnythingOfType 与 mock.MatchedBy 等匹配器,最后调用 AssertExpectations 校验。testify/suite 通过 SetupSuite、SetupTest、TearDownTest 管理共享状态。TDD 按红-绿-重构循环推进:先写失败测试,再写最小实现使测试通过,随后重构并补充更多用例。文件组织区分同包单元测试与黑盒集成测试;测试命名建议采用 Test[单元][场景][预期行为]。
常用命令:go test ./...、go test -v ./...、go test -count=1 ./...、go test -v -run TestUserService ./...、go test -cover ./...、go test -coverprofile=coverage.out ./...、go tool cover -html=coverage.out。
适用场景:Go 项目的单元测试、接口依赖隔离、TDD 实践与测试用例组织。
限制:资料仅提供上述内容;testify 版本、价格、性能数据及与其它测试工具的对比暂未提供。