*td.T
import (
"testing"
"github.com/maxatome/go-testdeep/td"
)
func TestMyFunc(tt *testing.T) {
t := td.NewT(tt)
t.Cmp(MyFunc(), 12)
}
func NewT(t testing.TB, config ...ContextConfig) *T
func Assert(t testing.TB, config ...ContextConfig) *T
func Require(t testing.TB, config ...ContextConfig) *T
func AssertRequire(t testing.TB, config ...ContextConfig) (assert, require *T)
*td.T
func TestMyFunc(tt *testing.T) {
t := td.NewT(tt).UseEqual().RootName("RECORD")
...
}
func (t *T) BeLax(enable ...bool) *T
func (t *T) FailureIsFatal(enable ...bool) *T
func (t *T) IgnoreUnexported(types ...any) *T
func (t *T) RootName(rootName string) *T
func (t *T) UseEqual(types ...any) *T
*td.T
import (
"testing"
"github.com/maxatome/go-testdeep/td"
)
func TestMyFunc(tt *testing.T) {
t := td.NewT(tt).UseEqual()
// Compares MyFunc() result against a fixed value
t.Cmp(MyFunc(), 128, "MyFunc() result is 128")
// Compares MyFunc() result using the Between Testdeep operator
t.Cmp(MyFunc(), td.Between(100, 199),
"MyFunc() result is between 100 and 199")
}
func (t *T) Cmp(got, expected any, args ...any) bool
func (t *T) CmpError(got error, args ...any) bool
func (t *T) CmpLax(got, expected any, args ...any) bool
(in fact the shortcut of Lax
operator)func (t *T) CmpNoError(got error, args ...any) bool
func (t *T) CmpNotPanic(fn func(), args ...any) bool
func (t *T) CmpPanic(fn func(), expected any, args ...any) bool
func (t *T) False(got any, args ...any) bool
func (t *T) Not(got, notExpected any, args ...any) bool
(in fact the shortcut of Not
operator)func (t *T) Run(name string, f func(t *T)) bool
func (t *T) RunAssertRequire(name string, f func(assert, require *T)) bool
func (t *T) True(got any, args ...any) bool
CmpDeeply()
method is now replaced by
Cmp()
,
but it is still available for backward compatibility purpose.
*td.T
func (t *T) A(operator TestDeep, model ...any) any
func (t *T) Anchor(operator TestDeep, model ...any) any
func (t *T) AnchorsPersistTemporarily() func()
func (t *T) DoAnchorsPersist() bool
func (t *T) ResetAnchors()
func (t *T) SetAnchorsPersist(persist bool)
*td.T
import (
"testing"
"github.com/maxatome/go-testdeep/td"
)
func TestMyFunc(tt *testing.T) {
t := td.NewT(tt).UseEqual()
t.Between(MyFunc(), 100, 199, td.BoundsInIn,
"MyFunc() result is between 100 and 199")
}
For each of these methods, it is always a shortcut on
T.Cmp()
and
the correponding Testdeep operator:
T.HasPrefix(got, expected, …) ⇒ T.Cmp(t, got, HasPrefix(expected), …)
^-------^ ^-------^
+-------------------------------------------+
Excluding Lax
operator for which the
shortcut method stays CmpLax
.
Each shortcut method is described in the corresponding operator page. See operators list.
func TestCmpHook(tt *testing.T) {
t := td.NewT(tt)
// Test time.Time via its Equal() method instead of default
// field/field (note it bypasses the UseEqual flag)
t = t.WithCmpHooks((time.Time).Equal)
date, _ := time.Parse(time.RFC3339, "2020-09-08T22:13:54+02:00")
t.Cmp(date, date.UTC()) // succeeds
// Each encountered string is converted to int
t = t.WithSmuggleHooks(strconv.Atoi)
t.Cmp("123", 123) // succeeds
}