check package

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, the test 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) 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))

Index

type Failed

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

Equal calls t.Errorf if want != got.

func EqualDeep

EqualDeep calls t.Errorf if !reflect.DeepEqual(want, got).

func Equals

Equals is the slice version of Equal. Calls t.Errorf if want != got.

func (Failed) Fatal

Fatal stops the test execution if the check failed (no-op otherwise), see testing.T.FailNow.

func (Failed) Log

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).

func (Failed) Logf

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)

Source Files

check.go

Forge

https://codeberg.org/pfad.fr/check

git clone
https://codeberg.org/pfad.fr/check.git
git@codeberg.org:pfad.fr/check.git