...

Source file src/github.com/DATA-DOG/go-sqlmock/examples/basic/basic.go

Documentation: github.com/DATA-DOG/go-sqlmock/examples/basic

     1  package main
     2  
     3  import "database/sql"
     4  
     5  func recordStats(db *sql.DB, userID, productID int64) (err error) {
     6  	tx, err := db.Begin()
     7  	if err != nil {
     8  		return
     9  	}
    10  
    11  	defer func() {
    12  		switch err {
    13  		case nil:
    14  			err = tx.Commit()
    15  		default:
    16  			tx.Rollback()
    17  		}
    18  	}()
    19  
    20  	if _, err = tx.Exec("UPDATE products SET views = views + 1"); err != nil {
    21  		return
    22  	}
    23  	if _, err = tx.Exec("INSERT INTO product_viewers (user_id, product_id) VALUES (?, ?)", userID, productID); err != nil {
    24  		return
    25  	}
    26  	return
    27  }
    28  
    29  func main() {
    30  	// @NOTE: the real connection is not required for tests
    31  	db, err := sql.Open("mysql", "root@/blog")
    32  	if err != nil {
    33  		panic(err)
    34  	}
    35  	defer db.Close()
    36  
    37  	if err = recordStats(db, 1 /*some user id*/, 5 /*some product id*/); err != nil {
    38  		panic(err)
    39  	}
    40  }
    41  

View as plain text