Слияние кода завершено, страница обновится автоматически
package gosql
import (
"database/sql"
"reflect"
"testing"
"time"
"github.com/ilibs/gosql/v2/internal/example/models"
)
func TestReflectMapper_FieldMap(t *testing.T) {
mapper := NewReflectMapper("db")
{
user := &models.Users{
Id: 1,
Name: "test",
SuccessTime: sql.NullString{
String: "2018-09-03 00:00:00",
Valid: false,
},
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
fields := mapper.FieldMap(reflect.ValueOf(user))
if len(fields) != 6 {
t.Error("FieldMap length error")
}
if v := fields["name"].Interface().(string); v != user.Name {
t.Errorf("Expecting %s, got %s", user.Name, v)
}
if v := fields["success_time"].Interface().(sql.NullString).String; v != user.SuccessTime.String {
t.Errorf("Expecting %s, got %s", user.Name, v)
}
}
{
photos := &models.Photos{}
fields := mapper.FieldMap(reflect.ValueOf(photos))
if len(fields) != 5 {
t.Error("FieldMap length error")
}
if v := fields["url"].Interface().(string); v != photos.Url {
t.Errorf("Expecting %s, got %s", photos.Url, v)
}
if _, ok := fields["created_at"].Interface().(time.Time); !ok {
t.Error("Expecting true, got false")
}
//fmt.Println(fields)
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )