假设我有一个结构体:
type User struct { Name string Id int score int }
解决方法
去包装测试通常提供线索的做事情。例如,从
database/sql/sql_test.go
,
func TestQuery(t *testing.T) { /* . . . */ rows,err := db.Query("SELECT|people|age,name|") if err != nil { t.Fatalf("Query: %v",err) } type row struct { age int name string } got := []row{} for rows.Next() { var r row err = rows.Scan(&r.age,&r.name) if err != nil { t.Fatalf("Scan: %v",err) } got = append(got,r) } /* . . . */ } func TestQueryRow(t *testing.T) { /* . . . */ var name string var age int var birthday time.Time err := db.QueryRow("SELECT|people|age,name|age=?",3).Scan(&age) /* . . . */ }
对于您的问题,将一行查询到一个结构中,将会转换为:
var row struct { age int name string } err = db.QueryRow("SELECT|people|age,3).Scan(&row.age,&row.name)