Skip to content

Commit 4a427d4

Browse files
committed
Equal & Len assert better messages
1 parent 4fc7ffd commit 4a427d4

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

assert/assert.go

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,11 @@ var (
147147
)
148148

149149
const (
150-
assertionMsg = "assertion violation"
150+
assertionMsg = "assertion violation"
151+
assertionEqualMsg = "assert equal"
152+
assertionNotEqualMsg = "assert not equal"
153+
assertionLenMsg = "assert len"
154+
151155
gotWantFmt = ": got '%v', want '%v'"
152156
gotWantLongerFmt = ": got '%v', should be longer than '%v'"
153157
gotWantShorterFmt = ": got '%v', should be shorter than '%v'"
@@ -438,7 +442,7 @@ func MNotNil[M ~map[T]U, T comparable, U any](m M, a ...any) {
438442
// assert violation message.
439443
func NotEqual[T comparable](val, want T, a ...any) {
440444
if want == val {
441-
doShouldNotBeEqual(val, want, a)
445+
doShouldNotBeEqual(assertionNotEqualMsg, val, want, a)
442446
}
443447
}
444448

@@ -450,17 +454,17 @@ func NotEqual[T comparable](val, want T, a ...any) {
450454
// are used to override the auto-generated assert violation message.
451455
func Equal[T comparable](val, want T, a ...any) {
452456
if want != val {
453-
doShouldBeEqual(val, want, a)
457+
doShouldBeEqual(assertionEqualMsg, val, want, a)
454458
}
455459
}
456460

457-
func doShouldBeEqual[T comparable](val, want T, a []any) {
458-
defMsg := fmt.Sprintf(assertionMsg+gotWantFmt, val, want)
461+
func doShouldBeEqual[T comparable](aname string, val, want T, a []any) {
462+
defMsg := fmt.Sprintf(aname+gotWantFmt, val, want)
459463
current().reportAssertionFault(1, defMsg, a)
460464
}
461465

462-
func doShouldNotBeEqual[T comparable](val, want T, a []any) {
463-
defMsg := fmt.Sprintf(assertionMsg+": got '%v' want (!= '%v')", val, want)
466+
func doShouldNotBeEqual[T comparable](aname string, val, want T, a []any) {
467+
defMsg := fmt.Sprintf(aname+": got '%v' want (!= '%v')", val, want)
464468
current().reportAssertionFault(1, defMsg, a)
465469
}
466470

@@ -492,7 +496,11 @@ func DeepEqual(val, want any, a ...any) {
492496
// assert.DeepEqual(pubKey, ed25519.PublicKey(pubKeyBytes))
493497
func NotDeepEqual(val, want any, a ...any) {
494498
if reflect.DeepEqual(val, want) {
495-
defMsg := fmt.Sprintf(assertionMsg+": got '%v', want (!= '%v')", val, want)
499+
defMsg := fmt.Sprintf(
500+
assertionMsg+": got '%v', want (!= '%v')",
501+
val,
502+
want,
503+
)
496504
current().reportAssertionFault(0, defMsg, a)
497505
}
498506
}
@@ -511,7 +519,7 @@ func Len(obj string, length int, a ...any) {
511519
l := len(obj)
512520

513521
if l != length {
514-
doShouldBeEqual(l, length, a)
522+
doShouldBeEqual(assertionLenMsg, l, length, a)
515523
}
516524
}
517525

@@ -575,7 +583,7 @@ func SLen[S ~[]T, T any](obj S, length int, a ...any) {
575583
l := len(obj)
576584

577585
if l != length {
578-
doShouldBeEqual(l, length, a)
586+
doShouldBeEqual(assertionLenMsg, l, length, a)
579587
}
580588
}
581589

@@ -629,7 +637,7 @@ func MLen[M ~map[T]U, T comparable, U any](obj M, length int, a ...any) {
629637
l := len(obj)
630638

631639
if l != length {
632-
doShouldBeEqual(l, length, a)
640+
doShouldBeEqual(assertionLenMsg, l, length, a)
633641
}
634642
}
635643

@@ -683,7 +691,7 @@ func CLen[C ~chan T, T any](obj C, length int, a ...any) {
683691
l := len(obj)
684692

685693
if l != length {
686-
doShouldBeEqual(l, length, a)
694+
doShouldBeEqual(assertionLenMsg, l, length, a)
687695
}
688696
}
689697

@@ -728,7 +736,11 @@ func CShorter[C ~chan T, T any](obj C, length int, a ...any) {
728736
//
729737
// Note that when [Plain] asserter is used ([SetDefault]), optional arguments
730738
// are used to override the auto-generated assert violation message.
731-
func MKeyExists[M ~map[T]U, T comparable, U any](obj M, key T, a ...any) (val U) {
739+
func MKeyExists[M ~map[T]U, T comparable, U any](
740+
obj M,
741+
key T,
742+
a ...any,
743+
) (val U) {
732744
var ok bool
733745
val, ok = obj[key]
734746

assert/assert_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func ExampleEqual() {
8282
}
8383
err := sample([]byte{1, 2})
8484
fmt.Printf("%v", err)
85-
// Output: sample: assert_test.go:80: ExampleEqual.func1(): assertion violation: got '2', want '3'
85+
// Output: sample: assert_test.go:80: ExampleEqual.func1(): assert equal: got '2', want '3'
8686
}
8787

8888
func ExampleSLen() {
@@ -94,7 +94,7 @@ func ExampleSLen() {
9494
}
9595
err := sample([]byte{1, 2})
9696
fmt.Printf("%v", err)
97-
// Output: sample: assert_test.go:92: ExampleSLen.func1(): assertion violation: got '2', want '3'
97+
// Output: sample: assert_test.go:92: ExampleSLen.func1(): assert len: got '2', want '3'
9898
}
9999

100100
func ExampleSNotEmpty() {

0 commit comments

Comments
 (0)