mirror of https://github.com/stretchr/testify.git
Merge pull request #1445 from stretchr/assert-refactor-getLen
assert: refactor internal func getLen()pull/1441/head
commit
0e90845e22
|
@ -731,16 +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() {
|
||||
if e := recover(); e != nil {
|
||||
ok = false
|
||||
}
|
||||
ok = recover() == nil
|
||||
}()
|
||||
return true, v.Len()
|
||||
return v.Len(), true
|
||||
}
|
||||
|
||||
// Len asserts that the specified object has specific length.
|
||||
|
@ -751,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...)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue