@@ -438,8 +438,7 @@ func MNotNil[M ~map[T]U, T comparable, U any](m M, a ...any) {
438
438
// assert violation message.
439
439
func NotEqual [T comparable ](val , want T , a ... any ) {
440
440
if want == val {
441
- defMsg := fmt .Sprintf (assertionMsg + ": got '%v' want (!= '%v')" , val , want )
442
- current ().reportAssertionFault (defMsg , a )
441
+ doShouldNotBeEqual (val , want , a )
443
442
}
444
443
}
445
444
@@ -451,11 +450,20 @@ func NotEqual[T comparable](val, want T, a ...any) {
451
450
// are used to override the auto-generated assert violation message.
452
451
func Equal [T comparable ](val , want T , a ... any ) {
453
452
if want != val {
454
- defMsg := fmt .Sprintf (assertionMsg + gotWantFmt , val , want )
455
- current ().reportAssertionFault (defMsg , a )
453
+ doShouldBeEqual (val , want , a )
456
454
}
457
455
}
458
456
457
+ func doShouldBeEqual [T comparable ](val , want T , a []any ) {
458
+ defMsg := fmt .Sprintf (assertionMsg + gotWantFmt , val , want )
459
+ current ().newReportAssertionFault (defMsg , a )
460
+ }
461
+
462
+ func doShouldNotBeEqual [T comparable ](val , want T , a []any ) {
463
+ defMsg := fmt .Sprintf (assertionMsg + ": got '%v' want (!= '%v')" , val , want )
464
+ current ().reportAssertionFault (defMsg , a )
465
+ }
466
+
459
467
// DeepEqual asserts that the (whatever) values are equal. If not it
460
468
// panics/errors (according the current Asserter) with the auto-generated
461
469
// message. You can append the generated got-want message by using optional
@@ -503,8 +511,7 @@ func Len(obj string, length int, a ...any) {
503
511
l := len (obj )
504
512
505
513
if l != length {
506
- defMsg := fmt .Sprintf (assertionMsg + gotWantFmt , l , length )
507
- current ().reportAssertionFault (defMsg , a )
514
+ doShouldBeEqual (l , length , a )
508
515
}
509
516
}
510
517
@@ -560,8 +567,7 @@ func SLen[S ~[]T, T any](obj S, length int, a ...any) {
560
567
l := len (obj )
561
568
562
569
if l != length {
563
- defMsg := fmt .Sprintf (assertionMsg + gotWantFmt , l , length )
564
- current ().reportAssertionFault (defMsg , a )
570
+ doShouldBeEqual (l , length , a )
565
571
}
566
572
}
567
573
@@ -617,8 +623,7 @@ func MLen[M ~map[T]U, T comparable, U any](obj M, length int, a ...any) {
617
623
l := len (obj )
618
624
619
625
if l != length {
620
- defMsg := fmt .Sprintf (assertionMsg + gotWantFmt , l , length )
621
- current ().reportAssertionFault (defMsg , a )
626
+ doShouldBeEqual (l , length , a )
622
627
}
623
628
}
624
629
@@ -916,11 +921,15 @@ func doZero[T Number](val T, a []any) {
916
921
// are used to override the auto-generated assert violation message.
917
922
func NotZero [T Number ](val T , a ... any ) {
918
923
if val == 0 {
919
- defMsg := fmt .Sprintf (assertionMsg + ": got '%v', want (!= 0)" , val )
920
- current ().reportAssertionFault (defMsg , a )
924
+ doNotZero (val , a )
921
925
}
922
926
}
923
927
928
+ func doNotZero [T Number ](val T , a []any ) {
929
+ defMsg := fmt .Sprintf (assertionMsg + ": got '%v', want (!= 0)" , val )
930
+ current ().newReportAssertionFault (defMsg , a )
931
+ }
932
+
924
933
// current returns a current default asserter used for package-level
925
934
// functions like assert.That().
926
935
//
0 commit comments