go-quicktest/qt
GitHub: go-quicktest/qt
Stars: 56 | Forks: 3
# qt: quicker Go tests
`go get github.com/go-quicktest/qt`
Package qt provides a collection of Go helpers for writing tests. It uses generics,
so requires Go 1.19 at least.
For a complete API reference, see the [package documentation](https://pkg.go.dev/github.com/go-quicktest/qt).
Quicktest helpers can be easily integrated inside regular Go tests, for
instance:
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))
})
}
### Assertions
An assertion looks like this, where `qt.Equals` could be replaced by any available
checker. If the assertion fails, the underlying `t.Fatal` method is called to
describe the error and abort the test.
qt.Assert(t, qt.Equals(someValue, wantValue))
If you don’t want to abort on failure, use `Check` instead, which calls `Error`
instead of `Fatal`:
qt.Check(t, qt.Equals(someValue, wantValue))
The library provides some base checkers like `Equals`, `DeepEquals`, `Matches`,
`ErrorMatches`, `IsNil` and others. More can be added by implementing the Checker
interface.
### Other helpers
The `Patch` helper makes it a little more convenient to change a global
or other variable for the duration of a test.
标签:EVTX分析