test: fix utils.AssertEqual (#5172)

This commit is contained in:
Cr 2022-03-18 20:11:23 +08:00 committed by GitHub
parent 3c00980e01
commit d402765f69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 13 deletions

View File

@ -583,7 +583,9 @@ func TestPluck(t *testing.T) {
if err := DB.Model(User{}).Where("name like ?", "pluck-user%").Order("name desc").Pluck("name", &names2).Error; err != nil {
t.Errorf("got error when pluck name: %v", err)
}
AssertEqual(t, names, sort.Reverse(sort.StringSlice(names2)))
sort.Slice(names2, func(i, j int) bool { return names2[i] < names2[j] })
AssertEqual(t, names, names2)
var ids []int
if err := DB.Model(User{}).Where("name like ?", "pluck-user%").Pluck("id", &ids).Error; err != nil {

View File

@ -83,6 +83,7 @@ func AssertEqual(t *testing.T, got, expect interface{}) {
}
if reflect.ValueOf(got).Kind() == reflect.Struct {
if reflect.ValueOf(expect).Kind() == reflect.Struct {
if reflect.ValueOf(got).NumField() == reflect.ValueOf(expect).NumField() {
exported := false
for i := 0; i < reflect.ValueOf(got).NumField(); i++ {
@ -100,6 +101,7 @@ func AssertEqual(t *testing.T, got, expect interface{}) {
}
}
}
}
if reflect.ValueOf(got).Type().ConvertibleTo(reflect.ValueOf(expect).Type()) {
got = reflect.ValueOf(got).Convert(reflect.ValueOf(expect).Type()).Interface()
@ -107,6 +109,9 @@ func AssertEqual(t *testing.T, got, expect interface{}) {
} else if reflect.ValueOf(expect).Type().ConvertibleTo(reflect.ValueOf(got).Type()) {
expect = reflect.ValueOf(got).Convert(reflect.ValueOf(got).Type()).Interface()
isEqual()
} else {
t.Errorf("%v: expect: %+v, got %+v", utils.FileWithLineNum(), expect, got)
return
}
}
}