github.com/movsb/taorm@v0.0.0-20201209183410-91bafb0b22a6/mimic/mimic_test.go (about)

     1  package mimic
     2  
     3  import (
     4  	"database/sql"
     5  	"database/sql/driver"
     6  	"testing"
     7  )
     8  
     9  func TestMimic(t *testing.T) {
    10  	SetRows([]string{"id", "name", "age"}, [][]driver.Value{
    11  		[]driver.Value{int64(1), "tao.yang", 100},
    12  		[]driver.Value{int64(2), "jianqiao.hu", 101},
    13  		[]driver.Value{int64(3), "daniel.zhang", 102},
    14  	})
    15  
    16  	db, err := sql.Open("mimic", "")
    17  	if err != nil {
    18  		t.Fatal(err)
    19  	}
    20  	defer db.Close()
    21  
    22  	type User struct {
    23  		ID   int64
    24  		Name string
    25  		Age  int
    26  	}
    27  
    28  	var users []*User
    29  	rows, err := db.Query("select * from users")
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  	defer rows.Close()
    34  	for rows.Next() {
    35  		var u User
    36  		if err := rows.Scan(&u.ID, &u.Name, &u.Age); err != nil {
    37  			t.Fatal(err)
    38  		}
    39  		users = append(users, &u)
    40  	}
    41  	if err := rows.Err(); err != nil {
    42  		t.Fatal(err)
    43  	}
    44  	for _, user := range users {
    45  		t.Logf("%+v", user)
    46  	}
    47  }