Using anchoring

Last, operators can directly be anchored in litterals, still using the td.T type, avoiding the use of the Struct operator:

import (
  "testing"
  "time"

  "github.com/maxatome/go-testdeep/td"
)

func TestCreateRecord(tt *testing.T) {
  t := td.NewT(tt)

  before := time.Now().Truncate(time.Second)
  record, err := CreateRecord()

  if t.CmpNoError(err) {
    t.RootName("RECORD"). // Use RECORD instead of DATA in failure reports
      Cmp(record,
        &Record{
          Name:      "Bob",
          Age:       23,
          Id:        t.Anchor(td.NotZero(), uint64(0)).(uint64),
          CreatedAt: t.Anchor(td.Between(before, time.Now())).(time.Time),
        },
        "Newly created record")
  }
}

See the Anchor method documentation for details. Note that A method is also a synonym for Anchor.

          Id:        t.A(td.NotZero(), uint64(0)).(uint64),
          CreatedAt: t.A(td.Between(before, time.Now())).(time.Time),