@@ -242,6 +242,7 @@ func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {
242242 if h , ok := t .(tHelper ); ok {
243243 h .Helper ()
244244 }
245+
245246 content := []labeledContent {
246247 {"Error Trace" , strings .Join (CallerInfo (), "\n \t \t \t " )},
247248 {"Error" , failureMessage },
@@ -332,6 +333,8 @@ func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs
332333// referenced values (as opposed to the memory addresses). Function equality
333334// cannot be determined and will always fail.
334335func Equal (t TestingT , expected , actual interface {}, msgAndArgs ... interface {}) bool {
336+ t , c := Retrieve (t )
337+
335338 if h , ok := t .(tHelper ); ok {
336339 h .Helper ()
337340 }
@@ -343,9 +346,15 @@ func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{})
343346 if ! ObjectsAreEqual (expected , actual ) {
344347 diff := diff (expected , actual )
345348 expected , actual = formatUnequalValues (expected , actual )
346- return Fail ( t , fmt .Sprintf ("Not equal: \n " +
349+ failureMessage := fmt .Sprintf ("Not equal: \n " +
347350 "expected: %s\n " +
348- "actual : %s%s" , expected , actual , diff ), msgAndArgs ... )
351+ "actual : %s%s" , expected , actual , diff )
352+
353+ if c != nil {
354+ failureMessage = c .Message (failureMessage )
355+ }
356+
357+ return Fail (t , failureMessage , msgAndArgs ... )
349358 }
350359
351360 return true
@@ -372,14 +381,22 @@ func validateEqualArgs(expected, actual interface{}) error {
372381// Both arguments must be pointer variables. Pointer variable sameness is
373382// determined based on the equality of both type and value.
374383func Same (t TestingT , expected , actual interface {}, msgAndArgs ... interface {}) bool {
384+ t , c := Retrieve (t )
385+
375386 if h , ok := t .(tHelper ); ok {
376387 h .Helper ()
377388 }
378389
379390 if ! samePointers (expected , actual ) {
380- return Fail (t , fmt .Sprintf ("Not same: \n " +
381- "expected: %p %#v\n " +
382- "actual : %p %#v" , expected , expected , actual , actual ), msgAndArgs ... )
391+ failureMessage := "Not same: \n " +
392+ "expected: %p %#v\n " +
393+ "actual : %p %#v"
394+
395+ if c != nil {
396+ failureMessage = c .Message (failureMessage )
397+ }
398+
399+ return Fail (t , fmt .Sprintf (failureMessage , expected , expected , actual , actual ), msgAndArgs ... )
383400 }
384401
385402 return true
@@ -457,16 +474,24 @@ func truncatingFormat(data interface{}) string {
457474//
458475// assert.EqualValues(t, uint32(123), int32(123))
459476func EqualValues (t TestingT , expected , actual interface {}, msgAndArgs ... interface {}) bool {
477+ t , c := Retrieve (t )
478+
460479 if h , ok := t .(tHelper ); ok {
461480 h .Helper ()
462481 }
463482
464483 if ! ObjectsAreEqualValues (expected , actual ) {
465484 diff := diff (expected , actual )
466485 expected , actual = formatUnequalValues (expected , actual )
467- return Fail (t , fmt .Sprintf ("Not equal: \n " +
468- "expected: %s\n " +
469- "actual : %s%s" , expected , actual , diff ), msgAndArgs ... )
486+ failureMessage := "Not equal: \n " +
487+ "expected: %s\n " +
488+ "actual : %s%s"
489+
490+ if c != nil {
491+ failureMessage = c .Message (failureMessage )
492+ }
493+
494+ return Fail (t , fmt .Sprintf (failureMessage , expected , actual , diff ), msgAndArgs ... )
470495 }
471496
472497 return true
@@ -1358,6 +1383,8 @@ func Error(t TestingT, err error, msgAndArgs ...interface{}) bool {
13581383// actualObj, err := SomeFunction()
13591384// assert.EqualError(t, err, expectedErrorString)
13601385func EqualError (t TestingT , theError error , errString string , msgAndArgs ... interface {}) bool {
1386+ t , c := Retrieve (t )
1387+
13611388 if h , ok := t .(tHelper ); ok {
13621389 h .Helper ()
13631390 }
@@ -1368,9 +1395,15 @@ func EqualError(t TestingT, theError error, errString string, msgAndArgs ...inte
13681395 actual := theError .Error ()
13691396 // don't need to use deep equals here, we know they are both strings
13701397 if expected != actual {
1371- return Fail (t , fmt .Sprintf ("Error message not equal:\n " +
1372- "expected: %q\n " +
1373- "actual : %q" , expected , actual ), msgAndArgs ... )
1398+ failureMessage := "Error message not equal:\n " +
1399+ "expected: %q\n " +
1400+ "actual : %q"
1401+
1402+ if c != nil {
1403+ failureMessage = c .Message (failureMessage )
1404+ }
1405+
1406+ return Fail (t , fmt .Sprintf (failureMessage , expected , actual ), msgAndArgs ... )
13741407 }
13751408 return true
13761409}
0 commit comments