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, 单元测试, 开发工具, 断言库, 日志审计, 泛型, 测试框架