import "code.pfad.fr/check"
package check is a very minimal Go assertion package, usage example:
obj, err := newObj() check.Equal(t, nil, err).Fatal() // Fatal will stop the test on failure (by calling testing.FailNow) check.Equal(t, "property", obj.Field) // if this fails, mark the test as failed and continue check.Equal(t, 0, obj.Answer("")).Log("wrong answer") // you can add some context on failure check.Equal(t, 42, obj.Answer("Ultimate Question")). Logf("question: %q", "Ultimate Question") // context with a printf-like syntax if preferred check.Equal(t, 42, obj.Answer("other question")). Logf("question: %q", "other question"). Log("reference", "Hitchhiker's Guide to the Galaxy"). // Log(f) calls can be chained Fatal()
For slices see Equals; for not comparable structs see EqualDeep (all assertions begin with Equal for ease of discovery using auto-completion).
To get a nice diff, use the output of go-cmp as a Log argument:
import "github.com/google/go-cmp/cmp" check.EqualDeep(t, expectedObj, obj). Log(cmp.Diff(expectedObj, obj))
type Failed struct {/* contains filtered or unexported fields */}
Failed can be used to conditionnally add more information in case of failure (all method calls will be no-op if the check succeeded).
func Equal[T comparable](t testing.TB, want, got T) Failed
Equal calls t.Errorf if want != got.
EqualDeep calls t.Errorf if !reflect.DeepEqual(want, got).
func Equals[S ~[]E, E comparable](t testing.TB, want, got S) Failed
Equals is the slice version of Equal. Calls t.Errorf if want != got.
Fatal stops the test execution if the check failed (no-op otherwise), see testing.T.FailNow.
Log formats its arguments using default formatting, analogous to Println, and records the text in the error log if the check failed (no-op otherwise).
Logf formats its arguments according to the format, analogous to Printf, and records the text in the error log if the check failed (no-op otherwise)
https://codeberg.org/pfad.fr/check
git clone
https://codeberg.org/pfad.fr/check.git git@codeberg.org:pfad.fr/check.git