diff --git a/assert/assertions.go b/assert/assertions.go index fae83c8ad..719164e7e 100644 --- a/assert/assertions.go +++ b/assert/assertions.go @@ -731,14 +731,14 @@ func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { } -// getLen try to get length of object. -// return (false, 0) if impossible. -func getLen(x interface{}) (ok bool, length int) { +// getLen tries to get the length of an object. +// It returns (0, false) if impossible. +func getLen(x interface{}) (length int, ok bool) { v := reflect.ValueOf(x) defer func() { ok = recover() == nil }() - return true, v.Len() + return v.Len(), true } // Len asserts that the specified object has specific length. @@ -749,7 +749,7 @@ func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) if h, ok := t.(tHelper); ok { h.Helper() } - ok, l := getLen(object) + l, ok := getLen(object) if !ok { return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", object), msgAndArgs...) } diff --git a/assert/assertions_test.go b/assert/assertions_test.go index 101bd418a..40e372015 100644 --- a/assert/assertions_test.go +++ b/assert/assertions_test.go @@ -1582,7 +1582,7 @@ func Test_getLen(t *testing.T) { struct{}{}, } for _, v := range falseCases { - ok, l := getLen(v) + l, ok := getLen(v) False(t, ok, "Expected getLen fail to get length of %#v", v) Equal(t, 0, l, "getLen should return 0 for %#v", v) } @@ -1611,7 +1611,7 @@ func Test_getLen(t *testing.T) { } for _, c := range trueCases { - ok, l := getLen(c.v) + l, ok := getLen(c.v) True(t, ok, "Expected getLen success to get length of %#v", c.v) Equal(t, c.l, l) }