go-quicktest/qt
GitHub: go-quicktest/qt
qt 是一个基于 Go 泛型的测试辅助库,通过提供丰富的断言 checker 和便捷工具来简化 Go 应用的单元测试编写。
Stars: 57 | Forks: 3
# qt:更快捷的 Go 测试
`go get github.com/go-quicktest/qt`
qt 包提供了一组用于编写测试的 Go 辅助工具。它使用了泛型,
因此至少需要 Go 1.19。
完整的 API 参考文档,请参阅[包文档](https://pkg.go.dev/github.com/go-quicktest/qt)。
Quicktest 辅助工具可以轻松集成到常规的 Go 测试中,例如:
```
import "github.com/go-quicktest/qt"
func TestFoo(t *testing.T) {
t.Run("numbers", func(t *testing.T) {
numbers, err := somepackage.Numbers()
qt.Assert(t, qt.DeepEquals(numbers, []int{42, 47})
qt.Assert(t, qt.ErrorMatches(err, "bad wolf"))
})
t.Run("nil", func(t *testing.T) {
got := somepackage.MaybeNil()
qt.Assert(t, qt.IsNil(got), qt.Commentf("value: %v", somepackage.Value))
})
}
```
### 断言
一个断言看起来像这样,其中 `qt.Equals` 可以替换为任何可用的
checker。如果断言失败,将调用底层的 `t.Fatal` 方法来
描述错误并中止测试。
```
qt.Assert(t, qt.Equals(someValue, wantValue))
```
如果您不想在失败时中止测试,请改用 `Check`,它会调用 `Error`
而不是 `Fatal`:
```
qt.Check(t, qt.Equals(someValue, wantValue))
```
该库提供了一些基础的 checker,例如 `Equals`、`DeepEquals`、`Matches`、
`ErrorMatches`、`IsNil` 等。可以通过实现 Checker
接口来添加更多的 checker。
### 其他辅助工具
`Patch` 辅助工具使得在测试期间更改全局变量或其他变量变得更加方便。
标签:EVTX分析, Go, Ruby工具, SOC Prime, 单元测试, 开发工具, 断言库, 日志审计, 泛型, 测试框架